home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: 500 MB Amiga Software / 500 MB Amiga Software - Euber 130 - Amiga Games Disc & Mag.iso / userbox / publicdomain / mtr / mt-rechnungii < prev    next >
Text File  |  1995-11-02  |  98KB  |  2,918 lines

  1. /*
  2. $VER: MT-RechnungII 2.27 (01.11.95)
  3.  ******************************************************************/
  4. /*    Rechnungsprogramm für meine Bild- und Videobearbeitungsfirma    */
  5. /*                                MT Graphic & Design                                */
  6. /******************************************************************/
  7. /*    Autor:                    Manfred Tremmel                                    */
  8. /*    Programmiersprache:    ARexx                                                    */
  9. /******************************************************************/
  10.  
  11. IF(~show('l','rexxsupport.library')) THEN
  12.     CALL addlib('rexxsupport.library',0,-30,0);
  13. IF(~show('l','apig.library')) THEN
  14.     CALL addlib('apig.library',0,-30,0);
  15. IF(~show('l','rexxreqtools.library')) THEN
  16.     CALL addlib('rexxreqtools.library',0,-30,0);
  17. CALL SET_APIG_GLOBALS();
  18.  
  19. i = allocmem(346); 
  20. x = getscreendata(i,346,WBENCHSCREEN,0);
  21. SCREEN_X    = GETVALUE(i,68,2,'n');
  22. SCREEN_Y    = GETVALUE(i,70,2,'n');
  23. Font_X    = GETVALUE(i,145,1,'n');
  24. Font_Y    = GETVALUE(i,143,1,'n');
  25. call freemem(i,346);
  26.  
  27. i = allocmem(232);
  28. x = getprefs(i,232);
  29. B_laenge = GETVALUE(i,178,2,'n');
  30. call freemem(i,232);
  31.  
  32. winidcmp    = GADGETUP+VANILLAKEY+CLOSEWINDOW;
  33. winflags    = ACTIVATE+RMBTRAP+WINDOWCLOSE+WINDOWDRAG+GIMMEZEROZERO+WINDOWDEPTH;
  34.  
  35. wintitle    = "MT-Rechnung";
  36. Win_X1    = 29 * Font_X;
  37. Win_Y1    = 18 * Font_Y;
  38.  
  39. wintitle2    = "MT-Rechnung - Rechnung erstellen";
  40. Win_X2    = 80 * Font_X;
  41. Win_Y2    = 35 * Font_Y;
  42. IF SCREEN_Y < Win_Y2 THEN
  43.     do; 
  44.         Win_Y2    = 32 * Font_Y;
  45.         I_max        = 11;
  46.     end;
  47. ELSE
  48.     I_max        = 13;
  49.  
  50. wintitle3    = "MT-Rechnung - Drucken";
  51. Win_X3    = 45 * Font_X;
  52. Win_Y3    = Win_Y1;
  53.  
  54. wintitle4    = "MT-Rechnung - Adressen verwalten";
  55. Win_X4    = Win_X2;
  56. Win_Y4    = 32 * Font_Y;
  57.  
  58. wintitle5    = "MT-Rechnung - Artikel verwalten";
  59. Win_X5    = Win_X2;
  60. Win_Y5    = 14 * Font_Y;
  61.  
  62. wintitle6    = "MT-Rechnung - Prefs";
  63. Win_X6    = 23 * Font_X;
  64. Win_Y6    = 19 * Font_Y;
  65.  
  66. LF = '0a'x;
  67. FF = '0c'x;
  68. CR = '0d'x;
  69.  
  70. ReqCent = "rt_reqpos=reqpos_centerscr";
  71.  
  72. IF SCREEN_X < Win_X2 | SCREEN_Y < Win_Y2 THEN
  73.     rtezrequest("Workbench Screen muß mindestens" LF ||,
  74.         Win_X2  "x" Win_Y2 "Bildpunkte groß sein!",,,ReqCent);
  75. ELSE
  76.     DO;
  77.         datum = UP_Datum();                            /* Ermittlung des Datums*/
  78.         CALL UP_Kund_lesen;                            /* Einlesen der Kunden    */
  79.         CALL UP_Artikel_lesen;                        /* Einlesen der Artikel    */
  80.         CALL UP_Rechnung_lesen;                        /* Einlesen der Rechn.    */
  81.         CALL UP_Prefs_lesen;                            /* Einlesen der Prefs    */
  82.  
  83.         call DefineGads1;
  84.         DefGads2 = 0;
  85.         DefGads3 = 0;
  86.         DefGads4 = 0;
  87.         DefGads5 = 0;
  88.         DefGads6 = 0;
  89.  
  90.         portname = "MT_Rechnung";
  91.         p = openport(portname);
  92.  
  93.         WaitForPort portname;
  94.         w1        = OPENWINDOW(portname,(Screen_X-Win_X1)/2,(Screen_Y-Win_Y1)/2,Win_X1,Win_Y1,0,1,winidcmp,winflags,
  95.                     ,wintitle,scr,0,null(),null(),conxgad);
  96.         rpw1    = GETWINDOWRASTPORT(w1);
  97.  
  98.         call GT_REFRESHWINDOW(w1,null());
  99.         extime    = 0;
  100.         apen        = 1;
  101.         DO WHILE extime = 0;
  102.             x    = waitpkt(portname);
  103.             DO FOREVER;
  104.                 msg        = getpkt(portname);
  105.                 IF msg    = '0000 0000'x THEN LEAVE;
  106.                 msgclass    = getarg(msg,0);
  107.                 msgcode    = getarg(msg,1);
  108.                 msgid        = getarg(msg,9);
  109.                 x            = reply(msg,0);
  110.                 SELECT
  111.                     WHEN msgid = 10 | msgcode = 65 | msgcode = 97 THEN
  112.                         CALL UP_Adressen;
  113.                     WHEN msgid = 12 | msgcode = 84 | msgcode = 116 THEN
  114.                         CALL UP_Artikel;
  115.                     WHEN msgid = 13 | msgcode = 82 | msgcode = 114 THEN
  116.                         CALL UP_Rechnung;
  117.                     WHEN msgid = 14 | msgcode = 68 | msgcode = 100 THEN
  118.                         CALL UP_Drucken;
  119.                     WHEN msgid = 15 | msgcode = 80 | msgcode = 112 THEN
  120.                         CALL UP_Prefs;
  121.                     WHEN msgid = 17 | msgclass = CLOSEWINDOW | msgcode = 69 | msgcode = 101 | msgcode = 27 THEN
  122.                         extime = rtezrequest("Programm wirklich beenden?","Ende|Weitermachen",,ReqCent);
  123.                     OTHERWISE
  124.                         NOP;
  125.                 END;
  126.             END;
  127.         END;
  128.         CALL CLOSEWINDOW(w1);
  129.  
  130.         CALL FREEGADGETS(conxgad);
  131.         CALL FREETHIS(newgadx);
  132.         CALL FREEVEC(GPoint);
  133.         IF DefGads2 > 0 THEN
  134.             DO;
  135.                 IF DefGads2    > 1 THEN
  136.                     CALL UP_Rechnung_schreiben;
  137.                 CALL FREEGADGETS(conxgad2);
  138.                 CALL FREETHIS(newgadx2);
  139.                 CALL FREEVEC(GPoint2);
  140.             END;
  141.         IF DefGads3 > 0 THEN
  142.             DO;
  143.                 CALL FREEGADGETS(conxgad3);
  144.                 CALL FREETHIS(newgadx3);
  145.                 CALL FREEVEC(GPoint3);
  146.                 Call FREETHIS(mylabels);
  147.             END;
  148.         IF DefGads4 > 0 THEN
  149.             DO;
  150.                 IF DefGads4    > 1 THEN
  151.                     CALL UP_Kund_schreiben;
  152.                 CALL FREEGADGETS(conxgad4);
  153.                 CALL FREETHIS(newgadx4);
  154.                 CALL FREEVEC(GPoint4);
  155.                 CALL FREETHIS(Kundlabels);
  156.             END;
  157.         IF DefGads5 > 0 THEN
  158.             DO;
  159.                 IF DefGads5    > 1 THEN
  160.                     CALL UP_Artikel_schreiben;
  161.                 CALL FREEGADGETS(conxgad5);
  162.                 CALL FREETHIS(newgadx5);
  163.                 CALL FREEVEC(GPoint5);
  164.             END;
  165.         IF DefGads6 > 0 THEN
  166.             DO;
  167.                 IF DefGads6 > 1 THEN
  168.                     CALL UP_Prefs_schreiben;
  169.                 CALL FREEGADGETS(conxgad6);
  170.                 CALL FREETHIS(newgadx6);
  171.                 CALL FREEVEC(GPoint6);
  172.             END;
  173.  
  174.         CALL FREEVISUALINFO(scrvinfo);
  175.         CALL UNLOCKPUBSCREEN(null(),scr);
  176.     END;
  177. CALL remlib('rexxreqtools.library');
  178. CALL remlib('apig.library');
  179. CALL remlib('rexxsupport.library');
  180. address COMMAND 'avail >NIL: flush'
  181. EXIT;
  182.  
  183. /* Unterprogramm zum Einlesen der Einstellungen (Prefs.dat)            */
  184. UP_Prefs_lesen:
  185.     Prefs_datei    = "Prefs.dat";
  186.     IF OPEN(P_dat,Prefs_datei,'read') THEN
  187.         DO;
  188.             MWSt_Satz.1 = READLN(P_dat);
  189.             MWSt_Satz.2 = READLN(P_dat);
  190.             Druckdatei    = READLN(P_dat);
  191.             Druckport    = READLN(P_dat);
  192.             D_XAbst        = READLN(P_dat);
  193.             D_YAbst        = READLN(P_dat);
  194.             CLOSE(P_dat);
  195.         END;
  196.     ELSE
  197.         DO;
  198.             MWSt_Satz.1    = 15.0;
  199.             MWSt_Satz.2 = 7.0;
  200.             Druckdatei    = "Drucker/PrefPrinter";
  201.             Druckport    = "PRT:";
  202.             D_XAbst        = 1;
  203.             D_YAbst        = 1;
  204.         END;
  205.     Call UP_Druckdaten_lesen;
  206.     MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1);
  207.     MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2);
  208.     MWSt_Rech.3 = 0;
  209. RETURN;
  210.  
  211. /* Unterprogramm zum Schreiben der Einstellungen (Prefs)                */
  212. UP_Prefs_schreiben:
  213.     IF OPEN(P_dat,Prefs_datei,'write') THEN
  214.         DO;
  215.             Schr_Text = MWSt_Satz.1||LF||MWSt_Satz.2||LF||Druckdatei||LF||Druckport||LF||D_XAbst||LF||D_YAbst||LF;
  216.             WRITECH(P_dat,Schr_Text);
  217.             CLOSE(P_dat);
  218.         END;
  219. RETURN;
  220.  
  221. /* Unterprogramm zum Einlesen Druckerspezifischer Werte                */
  222. UP_Druckdaten_lesen:
  223.     IF OPEN(D_dat,Druckdatei,'read') THEN
  224.         DO;
  225.             D_Z_kl    = READLN(D_dat);
  226.             D_Z_gr    = READLN(D_dat);
  227.             D_Schr    = READLN(D_dat);
  228.             D_SStand    = READLN(D_dat);
  229.             D_SGross    = READLN(D_dat);
  230.             D_SKlein    = READLN(D_dat);
  231.             D_Br10    = READLN(D_dat);
  232.             D_Br12    = READLN(D_dat);
  233.             D_Br15    = READLN(D_dat);
  234.             D_PEin    = READLN(D_dat);
  235.             D_PAus    = READLN(D_dat);
  236.             D_UEin    = READLN(D_dat);
  237.             D_UAus    = READLN(D_dat);
  238.             D_KEin    = READLN(D_dat);
  239.             D_KAus    = READLN(D_dat);
  240.             D_FEin    = READLN(D_dat);
  241.             D_FAus    = READLN(D_dat);
  242.             D_ZNorm    = READLN(D_dat);
  243.             D_ZZAbst    = READLN(D_dat);
  244.             D_CSchw    = READLN(D_dat);
  245.             D_CMag    = READLN(D_dat);
  246.             D_CZyan    = READLN(D_dat);
  247.             D_CViol    = READLN(D_dat);
  248.             D_CGelb    = READLN(D_dat);
  249.             D_CRot    = READLN(D_dat);
  250.             D_CGruen    = READLN(D_dat);
  251.             D_Rueck    = READLN(D_dat);
  252.             D_Ende    = READLN(D_dat);
  253.             CLOSE(D_dat);
  254.         END;
  255. RETURN;
  256.  
  257. /* Unterprogramm zum Einlesen der Kundenliste (Kunden.dat)            */
  258. UP_Kund_lesen:
  259.     K_datei    = "Kunden.dat";
  260.     K_max        = 0;
  261.     IF OPEN(K_dat,K_datei,'read') THEN
  262.         DO;
  263.             FI_VorName    = READLN(K_dat);
  264.             FI_Name        = READLN(K_dat);
  265.             FI_Strasse    = READLN(K_dat);
  266.             FI_PLZ        = READLN(K_dat);
  267.             FI_ORT        = READLN(K_dat);
  268.             FI_Land        = READLN(K_dat);
  269.             FI_GebTag    = READLN(K_dat);
  270.             FI_Rabatt    = READLN(K_dat);
  271.             FI_Tel        = READLN(K_dat);
  272.             FI_Fax        = READLN(K_dat);
  273.             FI_Dfue        = READLN(K_dat);
  274.             FI_EMail1    = READLN(K_dat);
  275.             FI_EMail2    = READLN(K_dat);
  276.             FI_EMail3    = READLN(K_dat);
  277.             FI_Anrede    = READLN(K_dat);
  278.             FI_BAnr        = READLN(K_dat);
  279.             FI_Komm        = READLN(K_dat);
  280.             FI_BLZ        = READLN(K_dat);
  281.             FI_BankBez    = READLN(K_dat);
  282.             FI_BankKurz    = READLN(K_dat);
  283.             FI_Konto        = READLN(K_dat);
  284.             DO forever;
  285.                 K_max  = K_max + 1;
  286.                 i = right(("000000" || K_max),6);
  287.                 KD_VorName.i  = READLN(K_dat);
  288.                 IF EOF(K_dat) THEN LEAVE;
  289.                 KD_Name.i        = READLN(K_dat);
  290.                 KD_Strasse.i    = READLN(K_dat);
  291.                 KD_PLZ.i            = READLN(K_dat);
  292.                 KD_ORT.i            = READLN(K_dat);
  293.                 KD_Land.i        = READLN(K_dat);
  294.                 KD_GebTag.i        = READLN(K_dat);
  295.                 KD_Rabatt.i        = READLN(K_dat);
  296.                 KD_Tel.i            = READLN(K_dat);
  297.                 KD_Fax.i            = READLN(K_dat);
  298.                 KD_Dfue.i        = READLN(K_dat);
  299.                 KD_EMail1.i        = READLN(K_dat);
  300.                 KD_EMail2.i        = READLN(K_dat);
  301.                 KD_EMail3.i        = READLN(K_dat);
  302.                 KD_Anrede.i        = READLN(K_dat);
  303.                 KD_BAnr.i        = READLN(K_dat);
  304.                 KD_Komm.i        = READLN(K_dat);
  305.                 KD_BLZ.i            = READLN(K_dat);
  306.                 KD_BankBez.i    = READLN(K_dat);
  307.                 KD_BankKurz.i    = READLN(K_dat);
  308.                 KD_Konto.i        = READLN(K_dat);
  309.             END;
  310.             CLOSE(K_dat);
  311.         END;
  312.     ELSE
  313.         K_max  = 1;
  314.     CALL UP_K_max_init;
  315. RETURN;
  316.  
  317. UP_K_max_init:
  318.     i = right(("000000" || K_max),6);
  319.     K_max = i;
  320.     KD_VorName.i    = "";
  321.     KD_Name.i        = "";
  322.     KD_Strasse.i    = "";
  323.     KD_PLZ.i            = "";
  324.     KD_ORT.i            = "";
  325.     KD_Land.i        = "";
  326.     KD_GebTag.i        = "";
  327.     KD_Rabatt.i        = "";
  328.     KD_Tel.i            = "";
  329.     KD_Fax.i            = "";
  330.     KD_Dfue.i        = "";
  331.     KD_EMail1.i        = "";
  332.     KD_EMail2.i        = "";
  333.     KD_EMail3.i        = "";
  334.     KD_Anrede.i        = "";
  335.     KD_BAnr.i        = "";
  336.     KD_Komm.i        = "";
  337.     KD_BLZ.i            = "";
  338.     KD_BankBez.i    = "";
  339.     KD_BankKurz.i    = "";
  340.     KD_Konto.i        = "";
  341. RETURN;
  342.  
  343. /* Unterprogramm zum schreiben der Kundenliste (Kunden.dat)            */
  344. UP_Kund_schreiben:
  345.     IF OPEN(K_dat,K_datei,'write') THEN
  346.         DO;
  347.             Schr_Text = FI_VorName||LF||FI_Name||LF||FI_Strasse||LF||FI_PLZ||LF||FI_Ort||LF||FI_Land||LF||FI_GebTag||LF||FI_Rabatt||LF||FI_Tel||LF;
  348.             Schr_Text = Schr_Text||FI_Fax||LF||FI_Dfue||LF||FI_EMail1||LF||FI_EMail2||LF||FI_EMail3||LF||FI_Anrede||LF||FI_BAnr||LF||FI_Komm||LF;
  349.             Schr_Text = Schr_Text||FI_BLZ||LF||FI_BankBez||LF||FI_BankKurz||LF||FI_Konto||LF;
  350.             WRITECH(K_dat,Schr_Text);
  351.             DO k = 1 to (K_max - 1);
  352.                 i = right(("000000" || k),6);
  353.                 Schr_Text = KD_VorName.i||LF||KD_Name.i||LF||KD_Strasse.i||LF||KD_PLZ.i||LF||KD_Ort.i||LF||KD_Land.i||LF||KD_GebTag.i||LF;
  354.                 Schr_Text = Schr_Text||KD_Rabatt.i||LF||KD_Tel.i||LF||KD_Fax.i||LF||KD_Dfue.i||LF||KD_EMail1.i||LF||KD_EMail2.i||LF||KD_EMail3.i||LF;
  355.                 Schr_Text = Schr_Text||KD_Anrede.i||LF||KD_BAnr.i||LF||KD_Komm.i||LF||KD_BLZ.i||LF||KD_BankBez.i||LF||KD_BankKurz.i||LF||KD_Konto.i||LF;
  356.                 WRITECH(K_dat,Schr_Text);
  357.             END;
  358.             CLOSE(K_dat);
  359.         END;
  360. RETURN;
  361.  
  362. /* Unterprogramm zum Einlesen der Artikelliste (Artikel.dat)        */
  363. UP_Artikel_lesen:
  364.     A_datei    = "Artikel.dat"
  365.     A_max        = 0;
  366.     IF OPEN(A_dat,A_datei,'read') THEN
  367.         DO forever;
  368.             A_max                = A_max + 1;
  369.             i                    = right(("000000" || A_max),6);
  370.             AR_ArtBez.i        = READLN(A_dat);
  371.             IF EOF(A_dat) THEN LEAVE;
  372.             AR_ArtPreis.i    = READLN(A_dat);
  373.             AR_ArtBuch.i    = READLN(A_dat);
  374.             AR_ArtMWST.i    = READLN(A_dat);
  375.         END;
  376.     ELSE
  377.         A_max  = 1;
  378.     CLOSE(A_dat);
  379.     CALL UP_A_max_init;
  380. RETURN;
  381.  
  382. UP_A_max_init:
  383.     i = right(("000000" || A_max),6);
  384.     A_max        = i;
  385.     AR_ArtBez.i        = "";
  386.     AR_ArtPreis.i    = "";
  387.     AR_ArtBuch.i    = "";
  388.     AR_ArtMWST.i    = "";
  389. Return;
  390.  
  391. /* Unterprogramm zum schreiben der Artikelliste (Artikel.dat)       */
  392. UP_Artikel_schreiben:
  393.     IF OPEN(A_dat,A_datei,'write') THEN
  394.         DO k = 1 to (A_max - 1);
  395.             i = right(("000000" || k),6);
  396.             Schr_Text = AR_ArtBez.i ||LF|| AR_ArtPreis.i ||LF|| AR_ArtBuch.i ||LF|| AR_ArtMWSt.i ||LF;
  397.             WRITECH(A_dat,Schr_Text);
  398.         END;
  399.     CLOSE(A_dat);
  400. RETURN;
  401.  
  402. /* Unterprogramm zum Einlesen der Rechnungsliste (Rechnung.dat)        */
  403. UP_Rechnung_lesen:
  404.     R_datei    = "Rechnung.dat"
  405.     R_max        = 0;
  406.     IF OPEN(R_dat,R_datei,'read') THEN
  407.         DO forever;
  408.             R_max                = R_max + 1;
  409.             i                    = right(("000000" || R_max),6);
  410.             RE_Kunde.i        = READLN(R_dat);
  411.             IF EOF(R_dat) THEN LEAVE;
  412.             RE_Datum.i        = READLN(R_dat);
  413.             DO j = 1 to 13;
  414.                 RE_Art.j.i    = READLN(R_dat);
  415.                 RE_Anz.j.i    = READLN(R_dat);
  416.             END;
  417.             RE_Mahnung.i    = READLN(R_dat);
  418.         END;
  419.     ELSE
  420.         R_max    = 1;
  421.     CLOSE(R_dat);
  422.     CALL UP_Rech_Max_init;
  423. RETURN;
  424.  
  425. UP_Rech_Max_init:
  426.     i = right(("000000" || R_max),6);
  427.     R_max    = i;
  428.     RE_Kunde.i        = "";
  429.     RE_Datum.i        = datum;
  430.     DO j = 1 to 13;
  431.         RE_Art.j.i    = "";
  432.         RE_Anz.j.i    = "";
  433.     END;
  434.     RE_Mahnung.i    = "";
  435. RETURN
  436.  
  437. /* Unterprogramm zum schreiben der Rechnungsliste (Rechnung.dat)        */
  438. UP_Rechnung_schreiben:
  439.     IF OPEN(R_dat,R_datei,'write') THEN
  440.         DO k = 1 to (R_max - 1);
  441.             i = right(("000000" || k),6);
  442.             Schr_Text = RE_Kunde.i||LF||RE_Datum.i||LF;
  443.             DO j = 1 to 13;
  444.                 Schr_Text = Schr_Text||RE_Art.j.i||LF||RE_Anz.j.i||LF;
  445.             END;
  446.             Schr_Text = Schr_Text||RE_Mahnung.i||LF;
  447.             WRITECH(R_dat,Schr_Text);
  448.         END;
  449.     CLOSE(R_dat);
  450. RETURN;
  451.  
  452. DefineGads1:
  453.     scr        = LOCKPUBSCREEN("Workbench");
  454.     scrvinfo    = GETVISUALINFO(scr);
  455.     scrfont    = GETVALUE(scr,40,4,'p');
  456.     GPoint    = ALLOCVEC(4,MEMF_CLEAR);
  457.     conxgad    = CREATECONTEXT(GPoint);
  458.     PreGad     = conxgad;
  459.  
  460.     newgadx    = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,26*Font_X,1.5*Font_Y,"Adressverwaltung",PLACETEXT_IN,10,null());
  461.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  462.  
  463.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Artikelverwaltung",PLACETEXT_IN,12,null());
  464.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  465.  
  466.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Rechnungsverwaltung",PLACETEXT_IN,13,null());
  467.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  468.  
  469.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,7*Font_Y,26*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,14,null());
  470.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  471.  
  472.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,9*Font_Y,26*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,15,null());
  473.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  474.  
  475.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,7*Font_X,14*Font_Y,15*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,17,null());
  476.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  477. RETURN;
  478.  
  479. DefineGads2:
  480.     GPoint2    = ALLOCVEC(4,MEMF_CLEAR);
  481.     conxgad2    = CREATECONTEXT(GPoint2);
  482.     PreGad2    = conxgad2;
  483.  
  484.     newgadx2    = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,2*Font_X,1.5*Font_Y,"K",PLACETEXT_IN,10,null());
  485.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  486.  
  487.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14*Font_X,Font_Y,10*Font_X,1.5*Font_Y,"Kundennr:",PLACETEXT_LEFT,11,null());
  488.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  489.  
  490.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,35*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Vorname:",PLACETEXT_LEFT,12,null());
  491.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0);
  492.  
  493.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,60*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Name:",PLACETEXT_LEFT,13,null());
  494.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0);
  495.  
  496.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,7*Font_X,3*Font_Y,7*Font_X,1.5*Font_Y,"PLZ:",PLACETEXT_LEFT,14,null());
  497.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  498.  
  499.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,21*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Ort:",PLACETEXT_LEFT,15,null());
  500.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  501.  
  502.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Straße:",PLACETEXT_LEFT,16,null());
  503.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  504.  
  505.     DO I = 1 TO I_max;
  506.         CALL SETNEWGADGET(newgadx2,scrvinfo,scrfont,1.5*Font_X,(1.7*i+4)*Font_Y,2*Font_X,1.5*Font_Y,"A",PLACETEXT_IN,10+(10*i),null());
  507.         PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  508.  
  509.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,5*Font_X,(1.7*i+4)*Font_Y,9*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+1),null());
  510.         PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  511.  
  512.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14.5*Font_X,(1.7*i+4)*Font_Y,7.4*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+2),null());
  513.         PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,10,TAG_DONE,0);
  514.  
  515.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,22*Font_X,(1.7*i+4)*Font_Y,31.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+3),null());
  516.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  517.  
  518.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+4),null());
  519.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  520.  
  521.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+5),null());
  522.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  523.     END;
  524.  
  525.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,8.5*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Datum:",PLACETEXT_LEFT,150,null());
  526.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  527.  
  528.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,28.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"Rabatt:",PLACETEXT_LEFT,151,null());
  529.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  530.  
  531.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,45.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"MWSt:",PLACETEXT_LEFT,152,null());
  532.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  533.  
  534.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Endsumme:",PLACETEXT_LEFT,153,null());
  535.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  536.  
  537.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,12*Font_X,(1.7*I_max+9)*Font_Y,10*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_LEFT,160,null());
  538.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  539.  
  540.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,33*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,">",PLACETEXT_IN,161,null());
  541.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  542.  
  543.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,24*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,162,null());
  544.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  545.  
  546.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,42.5*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,163,null());
  547.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  548.  
  549.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,52*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,164,null());
  550.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  551.  
  552.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,61*Font_X,(1.7*I_max+9)*Font_Y,16*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,165,null());
  553.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  554. RETURN;
  555.  
  556. DefineGads3:
  557.     GPoint3    = ALLOCVEC(4,MEMF_CLEAR);
  558.     conxgad3    = CREATECONTEXT(GPoint3);
  559.     PreGad3    = conxgad3;
  560.     mylabels    = make_labels();
  561.  
  562.     newgadx3    = MAKENEWGADGET(scrvinfo,scrfont,1*Font_X,2*Font_Y,12*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_ABOVE,10,null());
  563.     PreGad3    = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0);
  564.  
  565.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,6*Font_Y,12*Font_X,1.5*Font_Y,"Kunde:",PLACETEXT_ABOVE,11,null());
  566.     PreGad3    = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0);
  567.  
  568.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,9.5*Font_Y,12*Font_X,1.5*Font_Y,"Drucken ->",PLACETEXT_ABOVE,12,null());
  569.     PreGad3    = CREATEGADGET(CYCLE_KIND,PreGad3,newgadx3,GTCY_LABELS,mylabels,GTCY_Active,0,TAG_DONE,0);
  570.  
  571.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,12*Font_Y,12*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,13,null());
  572.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  573.  
  574.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,14.5*Font_Y,12*Font_X,1.5*Font_Y,"Verz.",PLACETEXT_IN,14,null());
  575.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  576.  
  577.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Rechnung",PLACETEXT_IN,15,null());
  578.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  579.  
  580.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Paketkarte",PLACETEXT_IN,16,null());
  581.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  582.  
  583.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,5*Font_Y,12.5*Font_X,1.5*Font_Y,"Zahlschein",PLACETEXT_IN,17,null());
  584.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  585.  
  586.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,7*Font_Y,12.5*Font_X,1.5*Font_Y,"Mahnung",PLACETEXT_IN,18,null());
  587.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  588.  
  589.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,9*Font_Y,12.5*Font_X,1.5*Font_Y,"Etikett",PLACETEXT_IN,19,null());
  590.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  591.  
  592.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,11*Font_Y,12.5*Font_X,1.5*Font_Y,"Umschlag",PLACETEXT_IN,20,null());
  593.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  594.  
  595.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,13*Font_Y,12.5*Font_X,1.5*Font_Y,"Art. Liste",PLACETEXT_IN,21,null());
  596.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  597.  
  598.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Adressliste",PLACETEXT_IN,22,null());
  599.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  600.  
  601.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Umsatzliste",PLACETEXT_IN,23,null());
  602.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  603. RETURN;
  604.  
  605. make_labels:
  606.     ltxt.1    = "Drucker";
  607.     ltxt.2    = "Datei";
  608.     mlabels    = MAKEPOINTER(0,0,12,MEMF_CLEAR);
  609.     DO x = 1 to 2;
  610.         lbuf = MAKEPOINTER(mlabels,0,length(ltxt.x)+2,MEMF_CLEAR);
  611.         CALL export(lbuf,ltxt.x);
  612.         CALL SETVALUE(mlabels,(x-1)*4,4,'p',lbuf);
  613.     END;
  614. RETURN mlabels;
  615.  
  616. DefineGads4:
  617.     GPoint4    = ALLOCVEC(4,MEMF_CLEAR);
  618.     conxgad4    = CREATECONTEXT(GPoint4);
  619.     PreGad4    = conxgad4;
  620.     Kundlabels    = make_labels2();
  621.  
  622.     newgadx4    = MAKENEWGADGET(scrvinfo,scrfont,12*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Vorname  :",PLACETEXT_LEFT,10,null());
  623.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  624.  
  625.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Name     :",PLACETEXT_LEFT,11,null());
  626.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  627.  
  628.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Straße   :",PLACETEXT_LEFT,12,null());
  629.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  630.  
  631.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,3*Font_Y,8*Font_X,1.5*Font_Y,"PLZ      :",PLACETEXT_LEFT,13,null());
  632.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,5,TAG_DONE,0);
  633.  
  634.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Ort      :",PLACETEXT_LEFT,14,null());
  635.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  636.  
  637.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Land     :",PLACETEXT_LEFT,15,null());
  638.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,20,TAG_DONE,0);
  639.  
  640.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,7*Font_Y,12*Font_X,1.5*Font_Y,"Geburtst.:",PLACETEXT_LEFT,16,null());
  641.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,10,TAG_DONE,0);
  642.  
  643.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,7*Font_Y,20*Font_X,1.5*Font_Y,"Telefon  :",PLACETEXT_LEFT,17,null());
  644.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  645.  
  646.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"Fax      :",PLACETEXT_LEFT,18,null());
  647.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  648.  
  649.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"DFÜ      :",PLACETEXT_LEFT,19,null());
  650.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  651.  
  652.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail1   :",PLACETEXT_LEFT,20,null());
  653.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  654.  
  655.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail2   :",PLACETEXT_LEFT,21,null());
  656.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  657.  
  658.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,13*Font_Y,20*Font_X,1.5*Font_Y,"EMail3   :",PLACETEXT_LEFT,22,null());
  659.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  660.  
  661.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,13*Font_Y,26*Font_X,1.5*Font_Y,"Anrede   :",PLACETEXT_LEFT,23,null());
  662.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  663.  
  664.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,15*Font_Y,65*Font_X,1.5*Font_Y,"BriefAn  :",PLACETEXT_LEFT,24,null());
  665.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0);
  666.  
  667.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,17*Font_Y,65*Font_X,1.5*Font_Y,"Kommentar:",PLACETEXT_LEFT,25,null());
  668.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,80,TAG_DONE,0);
  669.  
  670.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,19*Font_Y,65*Font_X,1.5*Font_Y,"Bank     :",PLACETEXT_LEFT,26,null());
  671.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0);
  672.  
  673.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"BLZ      :",PLACETEXT_LEFT,27,null());
  674.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  675.  
  676.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"Konto    :",PLACETEXT_LEFT,28,null());
  677.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  678.  
  679.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,23*Font_Y,20*Font_X,1.5*Font_Y,"Bankkurz :",PLACETEXT_LEFT,29,null());
  680.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  681.  
  682.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,23*Font_Y,5*Font_X,1.5*Font_Y,"Rabatt   :",PLACETEXT_LEFT,30,null());
  683.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,2,TAG_DONE,0);
  684.  
  685.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,13.5*Font_X,26*Font_Y,16*Font_X,1.5*Font_Y,"Bearbeiten:",PLACETEXT_LEFT,40,null());
  686.     PreGad4    = CREATEGADGET(CYCLE_KIND,PreGad4,newgadx4,GTCY_LABELS,Kundlabels,TAG_DONE,0);
  687.  
  688.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,40*Font_X,26*Font_Y,32*Font_X,1.5*Font_Y,"Suche  :",PLACETEXT_LEFT,41,null());
  689.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  690.  
  691.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,73*Font_X,26*Font_Y,4*Font_X,1.5*Font_Y,"Cal",PLACETEXT_IN,42,null());
  692.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  693.  
  694.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,15*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Kund/Lief   :",PLACETEXT_LEFT,43,null());
  695.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,6,TAG_DONE,0);
  696.  
  697.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,35*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null());
  698.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  699.  
  700.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,25*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null());
  701.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  702.  
  703.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,45*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null());
  704.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  705.  
  706.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,55*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null());
  707.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  708.  
  709.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,65*Font_X,28*Font_Y,12*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null());
  710.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  711. RETURN;
  712.  
  713. make_labels2:
  714.     ltxt2.1    = "Kunden";
  715.     ltxt2.2    = "Firma";
  716.     mlabels2    = MAKEPOINTER(0,0,12,MEMF_CLEAR);
  717.     DO x = 1 to 2;
  718.         lbuf2    = MAKEPOINTER(mlabels2,0,length(ltxt2.x)+2,MEMF_CLEAR);
  719.         CALL export(lbuf2,ltxt2.x);
  720.         CALL SETVALUE(mlabels2,(x-1)*4,4,'p',lbuf2);
  721.     END;
  722. RETURN mlabels2;
  723.  
  724. DefineGads5:
  725.     GPoint5    = ALLOCVEC(4,MEMF_CLEAR);
  726.     conxgad5    = CREATECONTEXT(GPoint5);
  727.     PreGad5    = conxgad5;
  728.  
  729.     newgadx5    = MAKENEWGADGET(scrvinfo,scrfont,14*Font_X,Font_Y,62*Font_X,1.5*Font_Y,"Bezeichnung:",PLACETEXT_LEFT,10,null());
  730.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0);
  731.  
  732.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,3*Font_Y,22*Font_X,1.5*Font_Y,"Preis      :",PLACETEXT_LEFT,11,null());
  733.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0);
  734.  
  735.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,59*Font_X,3*Font_Y,17*Font_X,1.5*Font_Y,"Buchkonto  :",PLACETEXT_LEFT,12,null());
  736.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0);
  737.  
  738.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,5*Font_Y,4*Font_X,1.5*Font_Y,"MWSt Kennz.:",PLACETEXT_LEFT,13,null());
  739.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,1,TAG_DONE,0);
  740.  
  741.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,8*Font_Y,37*Font_X,1.5*Font_Y,"Suche     :",PLACETEXT_LEFT,41,null());
  742.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0);
  743.  
  744.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Artikel   :",PLACETEXT_LEFT,43,null());
  745.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,6,u,TAG_DONE,0);
  746.  
  747.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,34*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null());
  748.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  749.  
  750.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,24*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null());
  751.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  752.  
  753.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,44*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null());
  754.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  755.  
  756.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,54*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null());
  757.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  758.  
  759.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,64*Font_X,10*Font_Y,14*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null());
  760.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  761. RETURN;
  762.  
  763. DefineGads6:
  764.     GPoint6    = ALLOCVEC(4,MEMF_CLEAR);
  765.     conxgad6    = CREATECONTEXT(GPoint6);
  766.     PreGad6    = conxgad6;
  767.     mylabels    = make_labels();
  768.  
  769.     newgadx6    = MAKENEWGADGET(scrvinfo,scrfont,9*Font_X,Font_Y,12*Font_X,1.5*Font_Y,"MWSt.1:",PLACETEXT_LEFT,10,null());
  770.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.1,TAG_DONE,0);
  771.  
  772.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,3*Font_Y,12*Font_X,1.5*Font_Y,"MWSt.2:",PLACETEXT_LEFT,11,null());
  773.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.2,TAG_DONE,0);
  774.  
  775.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,1*Font_X,7*Font_Y,6*Font_X,1.5*Font_Y,"Wähle",PLACETEXT_IN,12,null());
  776.     PreGad6    = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0);
  777.  
  778.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,7.5*Font_X,7*Font_Y,13.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,13,null());
  779.     PreGad6    = CREATEGADGET(TEXT_KIND,PreGad6,newgadx6,GTTX_BORDER,1,TAG_DONE,0);
  780.  
  781.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,9*Font_Y,12*Font_X,1.5*Font_Y,"Port:  ",PLACETEXT_LEFT,14,null());
  782.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,Druckport,TAG_DONE,0);
  783.  
  784.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,11*Font_Y,12*Font_X,1.5*Font_Y,"Rand_X:",PLACETEXT_LEFT,15,null());
  785.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_XAbst,TAG_DONE,0);
  786.  
  787.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,13*Font_Y,12*Font_X,1.5*Font_Y,"Rand_Y:",PLACETEXT_LEFT,16,null());
  788.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_YAbst,TAG_DONE,0);
  789.  
  790.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,5*Font_X,15*Font_Y,12*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,17,null());
  791.     PreGad6    = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0);
  792. RETURN;
  793.  
  794. UP_Adressen:
  795.     IF DefGads4 = 0 THEN
  796.         DO;
  797.             call DefineGads4;
  798.             DefGads4 = 1;
  799.         END;
  800.     w4        = OPENWINDOW(portname,(Screen_X-Win_X4)/2,(Screen_Y-Win_Y4)/2,Win_X4,Win_Y4,0,1,winidcmp,winflags,wintitle4,scr,0,null(),null(),conxgad4);
  801.     rpw4    = GETWINDOWRASTPORT(w4);
  802.     CALL DRAWBEVELBOX(rpw4,0.25*Font_X,0.5*Font_Y,78.5*Font_X,24.5*Font_Y,scrvinfo,TAG_DONE,0);
  803.     CALL DRAWBEVELBOX(rpw4,0.25*Font_X,25.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  804.     call GT_REFRESHWINDOW(w4,null());
  805.     ZW_Suchen    = "";
  806.     IF ZW_KundenNr > K_max | ZW_KundenNr < 1 THEN
  807.         ZW_KundenNr = K_max;
  808.     IF Druckart    = ltxt2.2 THEN
  809.         CALL UP_Firma_alles;
  810.     ELSE
  811.         DO;
  812.             Druckart        = ltxt2.1;
  813.             CALL UP_Kunden_alles;
  814.         END;
  815.     CALL UP_ReErst_fuellen;
  816.     extime4    = 0;
  817.     apen        = 1;
  818.     DO WHILE extime4 = 0;
  819.         x    = waitpkt(portname);
  820.         DO FOREVER;
  821.             msg4        = getpkt(portname);
  822.             IF msg4    = '0000 0000'x THEN LEAVE;
  823.             msgclass4= getarg(msg4,0);
  824.             msgcode4    = getarg(msg4,1);
  825.             msgid4    = getarg(msg4,9);
  826.             x            = reply(msg4,0);
  827.             x            =Auswertung4();
  828.         END;
  829.     END;
  830.     CALL CLOSEWINDOW(w4);
  831. RETURN;
  832.  
  833. UP_Artikel:
  834.     IF DefGads5 = 0 THEN
  835.         DO;
  836.             call DefineGads5;
  837.             DefGads5 = 1;
  838.         END;
  839.     w5        = OPENWINDOW(portname,(Screen_X-Win_X5)/2,(Screen_Y-Win_Y5)/2,Win_X5,Win_Y5,0,1,winidcmp,winflags,wintitle5,scr,0,null(),null(),conxgad5);
  840.     rpw5    = GETWINDOWRASTPORT(w5);
  841.     CALL DRAWBEVELBOX(rpw5,0.25*Font_X,0.5*Font_Y,78.5*Font_X,6.5*Font_Y,scrvinfo,TAG_DONE,0);
  842.     CALL DRAWBEVELBOX(rpw5,0.25*Font_X,7.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  843.     CALL GT_REFRESHWINDOW(w5,null());
  844.     ZW_Suchen = "";
  845.     IF ZW_ArtikelNr > A_max | ZW_ArtikelNr < 1 THEN
  846.         ZW_ArtikelNr = A_max;
  847.     CALL UP_Artikel_alles;
  848.     CALL UP_ArtErst_fuellen;
  849.     extime5    = 0;
  850.     apen        = 1;
  851.     DO WHILE extime5 = 0;
  852.         x    = waitpkt(portname);
  853.         DO FOREVER;
  854.             msg5        = getpkt(portname);
  855.             IF msg5    = '0000 0000'x THEN LEAVE;
  856.             msgclass5= getarg(msg5,0);
  857.             msgcode5    = getarg(msg5,1);
  858.             msgid5    = getarg(msg5,9);
  859.             x            = reply(msg5,0);
  860.             x            = Auswertung5();
  861.         END;
  862.     END;
  863.     CALL CLOSEWINDOW(w5);
  864. RETURN;
  865.  
  866. UP_Rechnung:
  867.     IF DefGads2 = 0 THEN
  868.         DO;
  869.             call DefineGads2;
  870.             DefGads2 = 1;
  871.         END;
  872.     w2        = OPENWINDOW(portname,(Screen_X-Win_X2)/2,(Screen_Y-Win_Y2)/2,Win_X2,Win_Y2,0,1,winidcmp,winflags,wintitle2,scr,0,null(),null(),conxgad2);
  873.     rpw2    = GETWINDOWRASTPORT(w2);
  874.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,0.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  875.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,5.25*Font_Y,78.5*Font_X,((1.7*I_Max)+2.75)*Font_Y,scrvinfo,TAG_DONE,0);
  876.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,((1.7*I_Max)+8.5)*Font_Y,78.5*Font_X,2.5*Font_Y,scrvinfo,TAG_DONE,0);
  877.     call GT_REFRESHWINDOW(w2,null());
  878.     IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN
  879.         UEB_RechNr = R_max;
  880.     CALL UP_Rechnung_fuellen;
  881.     extime2    = 0;
  882.     apen        = 1;
  883.     DO WHILE extime2 = 0;
  884.         x        = waitpkt(portname);
  885.         DO FOREVER;
  886.             msg2        = getpkt(portname);
  887.             IF msg2    = '0000 0000'x THEN LEAVE;
  888.             msgclass2= getarg(msg2,0);
  889.             msgcode2    = getarg(msg2,1);
  890.             msgid2    = getarg(msg2,9);
  891.             x            = reply(msg2,0);
  892.             x            = Auswertung2();
  893.         END;
  894.     END;
  895.     CALL CLOSEWINDOW(w2);
  896. RETURN;
  897.  
  898. UP_Drucken:
  899.     IF DefGads3 = 0 THEN
  900.         DO;
  901.             call DefineGads3;
  902.             DefGads3 = 1;
  903.         END;
  904.     w3        = OPENWINDOW(portname,(Screen_X-Win_X3)/2,(Screen_Y-Win_Y3)/2,Win_X3,Win_Y3,0,1,winidcmp,winflags,wintitle3,scr,0,null(),null(),conxgad3);
  905.     rpw3    = GETWINDOWRASTPORT(w3);
  906.     CALL DRAWBEVELBOX(rpw3,14.5*Font_X,0.5*Font_Y,29*Font_X,15.5*Font_Y,scrvinfo,TAG_DONE,0);
  907.     call GT_REFRESHWINDOW(w3,null());
  908.     extime3    = 0;
  909.     apen    = 1;
  910.     IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN
  911.         UEB_RechNr = "000001";
  912.     UEB_RechNr = right("000000" || UEB_RechNr,6);
  913.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  914.     DO j = 1 to I_max;
  915.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr
  916.         IF ZW_Art_Nr.j > "" THEN
  917.             DO;
  918.                 x = ZW_Art_Nr.j;
  919.                 ZW_Bez.j            = AR_ArtBez.x;
  920.                 ZW_EPreis.j        = AR_ArtPreis.x;
  921.                 ZW_Art_Anz.j    = RE_Anz.j.UEB_RechNr;
  922.             END;
  923.         ELSE
  924.             DO;
  925.                 ZW_Bez.j            = "";
  926.                 ZW_EPreis.j        = "";
  927.                 ZW_Art_Anz.j    = "";
  928.             END;
  929.     END;
  930.     ZW_Datum = RE_Datum.UEB_RechNr;
  931.     CALL SETSTRGADID(w3,10,UEB_RechNr,null());
  932.     CALL SETSTRGADID(w3,11,ZW_KundenNr,null());
  933.     REFRESHGLIST(conxgad3,w3,null(),-1);
  934.     Druckverz = "ram:";
  935.     IF Druckart ~= ltxt.2 THEN
  936.         Druckart    = ltxt.1
  937.     DO WHILE extime3 = 0;
  938.         x    = waitpkt(portname);
  939.         DO FOREVER;
  940.             msg3        = getpkt(portname);
  941.             IF msg3    = '0000 0000'x THEN LEAVE;
  942.             msgclass3= getarg(msg3,0);
  943.             msgcode3    = getarg(msg3,1);
  944.             msgid3    = getarg(msg3,9);
  945.             x            = reply(msg3,0);
  946.             x            = Auswertung3();
  947.         END;
  948.     END;
  949.     CALL CLOSEWINDOW(w3);
  950. RETURN;
  951.  
  952. UP_Prefs:
  953.     IF DefGads6 = 0 THEN
  954.         DO;
  955.             call DefineGads6;
  956.             DefGads6 = 2;
  957.         END;
  958.     w6        = OPENWINDOW(portname,(Screen_X-Win_X6)/2,(Screen_Y-Win_Y6)/2,Win_X6,Win_Y6,0,1,winidcmp,winflags,wintitle6,scr,0,null(),null(),conxgad6);
  959.     rpw6    = GETWINDOWRASTPORT(w6);
  960.  
  961.     CALL pitext(rpw6,Font_X,5.5*Font_Y,"Drucker auswählen:",apen,0,jam2,scrfont);
  962.     CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(Druckdatei,12),apen,0,jam2,scrfont);
  963.     call GT_REFRESHWINDOW(w6,null());
  964.     extime6    = 0;
  965.     apen        = 1;
  966.     DO WHILE extime6 = 0;
  967.         x    = waitpkt(portname);
  968.         DO FOREVER;
  969.             msg6        = getpkt(portname);
  970.             IF msg6    = '0000 0000'x THEN LEAVE;
  971.             msgclass6= getarg(msg6,0);
  972.             msgcode6    = getarg(msg6,1);
  973.             msgid6    = getarg(msg6,9);
  974.             x            = reply(msg6,0);
  975.             x            = Auswertung6();
  976.         END;
  977.     END;
  978.     CALL CLOSEWINDOW(w6);
  979. RETURN;
  980.  
  981. UP_Rechnung_fuellen:
  982.     UEB_RechNr = right("000000" || UEB_RechNr,6);
  983.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  984.     CALL UP_Kunden_Fuellen;
  985.     DO j = 1 to I_max;
  986.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr
  987.         IF ZW_Art_Nr.j > "" THEN
  988.             DO;
  989.                 x = ZW_Art_Nr.j;
  990.                 ZW_Bez.j            = AR_ArtBez.x;
  991.                 ZW_EPreis.j        = AR_ArtPreis.x;
  992.                 ZW_Art_Anz.j    = RE_Anz.j.UEB_RechNr;
  993.             END;
  994.         ELSE
  995.             DO;
  996.                 ZW_Bez.j            = "";
  997.                 ZW_EPreis.j        = "";
  998.                 ZW_Art_Anz.j    = "";
  999.             END;
  1000.         CALL SETSTRGADID(w2,(j*10+11),ZW_Art_Nr.j,null());
  1001.         CALL SETSTRGADID(w2,(j*10+12),ZW_Art_Anz.j,null());
  1002.         CALL pitext(rpw2,22.5*Font_X,(1.7*j+4.2)*Font_Y,left(ZW_Bez.j,30),apen,0,jam2,scrfont);
  1003.         CALL pitext(rpw2,54.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_EPreis.j,10),apen,0,jam2,scrfont);
  1004.     END;
  1005.     ZW_Datum = RE_Datum.UEB_RechNr;
  1006.     CALL pitext(rpw2,9*Font_X,(1.7*I_max+6.2)*Font_Y,left(ZW_Datum,10),apen,0,jam2,scrfont);
  1007.  
  1008.     CALL SETSTRGADID(w2,160,UEB_RechNr,null());
  1009.     CALL UP_B_Berechnung;
  1010.     REFRESHGLIST(conxgad2,w2,null(),-1);
  1011. RETURN;
  1012.  
  1013. UP_Kunden_Fuellen:
  1014.     IF ZW_KundenNr > 0 THEN
  1015.         DO;
  1016.             ZW_Kunden_VorName    = KD_VorName.ZW_KundenNr;
  1017.             ZW_Kunden_Name        = KD_Name.ZW_KundenNr;
  1018.             ZW_PLZ                = KD_PLZ.ZW_KundenNr;
  1019.             ZW_Ort                = KD_Ort.ZW_KundenNr;
  1020.             ZW_Strasse            = KD_Strasse.ZW_KundenNr;
  1021.         END;
  1022.     ELSE
  1023.         DO;
  1024.             ZW_KundenNr            = "";
  1025.             ZW_Kunden_VorName    = "";
  1026.             ZW_Kunden_Name        = "";
  1027.             ZW_PLZ                = "";
  1028.             ZW_Ort                = "";
  1029.             ZW_Strasse            = "";
  1030.         END;
  1031.     CALL SETSTRGADID(w2,11,ZW_KundenNr,null());
  1032.     CALL SETSTRGADID(w2,12,ZW_Kunden_VorName,null());
  1033.     CALL SETSTRGADID(w2,13,ZW_Kunden_Name,null());
  1034.     CALL pitext(rpw2,7.5*Font_X,3.2*Font_Y,LEFT(ZW_PLZ,5),apen,0,jam2,scrfont);
  1035.     CALL pitext(rpw2,21.5*Font_X,3.2*Font_Y,LEFT(ZW_Ort,22),apen,0,jam2,scrfont);
  1036.     CALL pitext(rpw2,54.5*Font_X,3.2*Font_Y,LEFT(ZW_Strasse,22),apen,0,jam2,scrfont);
  1037. RETURN;
  1038.  
  1039. UP_B_Berechnung:
  1040.     ZW_MWSt = 0;
  1041.     ZW_Endsumme = 0;
  1042.     ZW_Rab = 0;
  1043.     ZW_KundenNr = GETSTRGAD(w2,(11),null());
  1044.     ZW_Rabatt = KD_Rabatt.ZW_KundenNr;
  1045.     IF DATATYPE(ZW_Rabatt,'w') THEN
  1046.         ZW_Rabatt = ZW_Rabatt / 100;
  1047.     ELSE
  1048.         ZW_Rabatt = 0;
  1049.     DO j = 1 to I_Max;
  1050.         ZW_Art_Nr = GETSTRGAD(w2,(11+(10*j)),null());
  1051.         ZW_Menge  = GETSTRGAD(w2,(12+(10*j)),null());
  1052.         IF ZW_Art_Nr > 0 & ZW_Menge > 0 THEN
  1053.             DO;
  1054.                 ZW_Summe.j  = (ZW_EPreis.j * ZW_Menge) + 0.005;
  1055.                 IF ZW_Summe.j < 0 THEN
  1056.                     ZW_Summe.j  = ZW_Summe.j - 0.01;
  1057.                 ZW_Summe.j    = trunc(ZW_Summe.j,2);
  1058.                 ZW_Rab        = ZW_Rab + (ZW_Summe.j * ZW_Rabatt);
  1059.                 ZW_Summe.j    = right(ZW_Summe.j,10);
  1060.                 ZW_Endsumme    = ZW_Endsumme + ZW_Summe.j;
  1061.                 i = AR_ArtMWSt.ZW_Art_Nr;
  1062.                 ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.i);
  1063.             END;
  1064.         ELSE
  1065.             ZW_Summe.j = "";
  1066.         CALL pitext(rpw2,66.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_Summe.j,10),apen,0,jam2,scrfont);
  1067.     END;
  1068.     ZW_Endsumme    = trunc(ZW_Endsumme - ZW_Rab + 0.005,2);
  1069.     ZW_Rab        = trunc(ZW_Rab + 0.005,2);
  1070.     ZW_MWSt        = trunc(ZW_MWSt + 0.005,2);
  1071.     CALL pitext(rpw2,66.5*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Endsumme,10),apen,0,jam2,scrfont);
  1072.     CALL pitext(rpw2,29.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Rab,9),apen,0,jam2,scrfont);
  1073.     CALL pitext(rpw2,46.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_MWSt,9),apen,0,jam2,scrfont);
  1074. RETURN;
  1075.  
  1076. Auswertung2:
  1077.     SELECT
  1078.         WHEN msgcode2 = 75 | msgcode2 = 107 THEN
  1079.             ACTIVATEGADID(11,w2,null());
  1080.         WHEN msgcode2 = 86 | msgcode2 = 118 THEN
  1081.             ACTIVATEGADID(12,w2,null());
  1082.         WHEN msgcode2 = 78 | msgcode2 = 110 THEN
  1083.             ACTIVATEGADID(13,w2,null());
  1084.         WHEN msgcode2 = 82 | msgcode2 = 114 THEN
  1085.             ACTIVATEGADID(160,w2,null());
  1086.         WHEN msgid2 = 10 | msgcode2 = 76 | msgcode2 = 108 THEN
  1087.             DO;
  1088.                 CALL UP_Adressen;
  1089.                 IF ZW_KundenNr = K_max THEN
  1090.                     ZW_KundenNr = K_max - 1;
  1091.                 CALL UP_Kunden_Fuellen;
  1092.                 CALL UP_B_Berechnung;
  1093.                 REFRESHGLIST(conxgad2,w2,null(),-1);
  1094.             END;
  1095.         WHEN msgid2 = 11 THEN
  1096.             DO;
  1097.                 Test = GETSTRGAD(w2,msgid2,null());
  1098.                 IF Test ~= ZW_KundenNr THEN
  1099.                     DO;
  1100.                         ZW_KundenNr = TEST;
  1101.                         IF DATATYPE(ZW_KundenNr,'w') THEN
  1102.                             DO;
  1103.                                 IF ZW_KundenNr = K_max THEN
  1104.                                     ZW_KundenNr = K_max - 1;
  1105.                                 ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6);
  1106.                                 ACTIVATEGADID(21,w2,null());
  1107.                             END;
  1108.                         ELSE
  1109.                             DO;
  1110.                                 rtezrequest("Kundennummer nicht numerisch!",,,ReqCent);
  1111.                                 ZW_KundenNr = "000001";
  1112.                                 ACTIVATEGADID(11,w2,null());
  1113.                             END;
  1114.                         CALL UP_Kunden_Fuellen;
  1115.                         CALL UP_B_Berechnung;
  1116.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1117.                     END;
  1118.             END;
  1119.         WHEN msgid2 = 12 THEN
  1120.             DO;
  1121.                 Test = GETSTRGAD(w2,msgid2,null());
  1122.                 IF Test ~= ZW_Kunden_VorName THEN
  1123.                     DO;
  1124.                         ZW_Kunden_VorName = Test;
  1125.                         DO I = 1 to K_max;
  1126.                             I = RIGHT("000000" || I,6);
  1127.                             IF POS(UPPER(ZW_Kunden_VorName),UPPER(KD_VorName.I)) THEN
  1128.                                 DO;
  1129.                                     ZW_KundenNr = I;
  1130.                                     I = K_max + 5;
  1131.                                     ACTIVATEGADID(21,w2,null());
  1132.                                 END;
  1133.                         END;
  1134.                         IF I < (K_max + 5) THEN
  1135.                             DO;
  1136.                                 rtezrequest("Kein Kunde mit diesem Vornamen vorhanden!",,,ReqCent);
  1137.                                 ZW_KundenNr = GETSTRGAD(w2,11,null());
  1138.                                 IF ZW_KundenNr = "" THEN
  1139.                                     ZW_KundenNr = "000001";
  1140.                                 ACTIVATEGADID(12,w2,null());
  1141.                             END;
  1142.                         CALL UP_Kunden_Fuellen;
  1143.                         CALL UP_B_Berechnung;
  1144.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1145.                     END;
  1146.             END;
  1147.         WHEN msgid2 = 13 THEN
  1148.             DO;
  1149.                 Test = GETSTRGAD(w2,13,null());
  1150.                 IF Test ~= ZW_Kunden_Name THEN
  1151.                     DO;
  1152.                         ZW_Kunden_Name = Test;
  1153.                         DO I = 1 to K_max;
  1154.                             I = RIGHT("000000" || I,6);
  1155.                             IF POS(UPPER(ZW_Kunden_Name),UPPER(KD_Name.I)) THEN
  1156.                                 DO;
  1157.                                     ZW_KundenNr = I;
  1158.                                     ACTIVATEGADID(21,w2,null());
  1159.                                     I = K_max + 5;
  1160.                                 END;
  1161.                         END;
  1162.                         IF I < (K_max + 5) THEN
  1163.                             DO;
  1164.                                 rtezrequest("Kein Kunde mit diesem Familiennamen vorhanden!",,,ReqCent);
  1165.                                 ZW_KundenNr = GETSTRGAD(w2,11,null());
  1166.                                 IF ZW_KundenNr = "" THEN
  1167.                                     ZW_KundenNr = "000001";
  1168.                                 ACTIVATEGADID(13,w2,null());
  1169.                             END;
  1170.                         CALL UP_Kunden_Fuellen;
  1171.                         CALL UP_B_Berechnung;
  1172.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1173.                     END;
  1174.             END;
  1175.         WHEN msgid2 = 20 | msgid2 = 30 | msgid2 = 40 | msgid2 = 50 | msgid2 = 60 |,
  1176.             msgid2 = 70 | msgid2 = 80 | msgid2 = 90 | msgid2 =100 | msgid2 =110 |,
  1177.             msgid2 =120 | msgid2 =130 | msgid2 =140 THEN
  1178.             DO;
  1179.                 CALL UP_Artikel;
  1180.                 i = (msgid2 - 10) / 10;
  1181.                 ZW_Art_Nr.i    = ZW_ArtikelNr;
  1182.                 IF ZW_Art_Nr.i = A_max THEN
  1183.                     ZW_Art_Nr.i = "000000" ||(A_max - 1);
  1184.                 ZW_Art_Nr.i    = right(ZW_Art_Nr.i,6);
  1185.                 Test            = ZW_Art_Nr.i;
  1186.                 ZW_EPreis.i    = RIGHT(AR_ArtPreis.Test,9);
  1187.                 ZW_Bez.i        = AR_ArtBez.Test;
  1188.                 CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Nr.i,null());
  1189.                 CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont);
  1190.                 CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont);
  1191.                 CALL UP_B_Berechnung;
  1192.                 ACTIVATEGADID(msgid2+2,w2,null());
  1193.                 REFRESHGLIST(conxgad2,w2,null(),-1);
  1194.             END;
  1195.         WHEN msgid2 = 21 | msgid2 = 31 | msgid2 = 41 | msgid2 = 51 | msgid2 = 61 |,
  1196.             msgid2 = 71 | msgid2 = 81 | msgid2 = 91 | msgid2 =101 | msgid2 =111 |,
  1197.             msgid2 =121 | msgid2 =131 | msgid2 =141 THEN
  1198.             DO;
  1199.                 i = (msgid2 - 11) / 10;
  1200.                 Test = GETSTRGAD(w2,msgid2,null());
  1201.                 IF Test ~= ZW_Art_Nr.i THEN
  1202.                     DO;
  1203.                         ZW_Art_Nr.i = Test
  1204.                         IF ZW_Art_Nr.i = "" THEN
  1205.                             DO;
  1206.                                 ZW_Art_Anz.i = "";
  1207.                                 CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Anz.i,null());
  1208.                                 ZW_EPreis.i    = "";
  1209.                                 ZW_Bez.i        = "";
  1210.                             END;
  1211.                         ELSE
  1212.                             DO;
  1213.                                 IF DATATYPE(ZW_Art_Nr.i,'w') THEN
  1214.                                     DO;
  1215.                                         IF ZW_Art_Nr.i > (A_max - 1) THEN
  1216.                                             ZW_Art_Nr.i = A_max - 1;
  1217.                                         ZW_Art_Nr.i = RIGHT("000000" || ZW_Art_Nr.i,6);
  1218.                                     END;
  1219.                                 ELSE
  1220.                                     DO;
  1221.                                         rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent);
  1222.                                         ZW_Art_Nr.i = "000001";
  1223.                                         ACTIVATEGADID(msgid2,w2,null());
  1224.                                     END;
  1225.                                 TEST = ZW_Art_Nr.i;
  1226.                                 ZW_EPreis.i    = AR_ArtPreis.Test;
  1227.                                 ZW_Bez.i        = AR_ArtBez.Test;
  1228.                             END;
  1229.                         CALL SETSTRGADID(w2,msgid2,ZW_Art_Nr.i,null());
  1230.                         CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont);
  1231.                         CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont);
  1232.                         CALL UP_B_Berechnung;
  1233.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1234.                     END;
  1235.                 END;
  1236.             WHEN msgid2 = 22 | msgid2 = 32 | msgid2 = 42 | msgid2 = 52 | msgid2 = 62 |,
  1237.                 msgid2 = 72 | msgid2 = 82 | msgid2 = 92 | msgid2 =102 | msgid2 =112 |,
  1238.                 msgid2 =122 | msgid2 =132 | msgid2 =142 THEN
  1239.                 DO;
  1240.                     i = (msgid2 - 12) / 10;
  1241.                     Test = GETSTRGAD(w2,msgid2,null());
  1242.                     IF Test ~= ZW_Art_Anz.i THEN
  1243.                         DO;
  1244.                             ZW_Art_Anz.i = Test
  1245.                             IF ~DATATYPE(ZW_Art_Anz.i,'n') THEN
  1246.                                 DO;
  1247.                                     rtezrequest("Artikelanzahl nicht numerisch, bitte prüfen!",,,ReqCent);
  1248.                                     ZW_Art_Anz.i = 1;
  1249.                                     ACTIVATEGADID(msgid2,w2,null());
  1250.                                 END;
  1251.                             CALL SETSTRGADID(w2,msgid2,ZW_Art_Anz.i,null());
  1252.                             IF ZW_EPreis.i > "" THEN
  1253.                                 CALL UP_B_Berechnung;
  1254.                             REFRESHGLIST(conxgad2,w2,null(),-1);
  1255.                         END;
  1256.                 END;
  1257.             WHEN msgid2 = 160 THEN
  1258.                 DO;
  1259.                     Test = GETSTRGAD(w2,msgid2,null());
  1260.                     IF Test ~= UEB_RechNr THEN
  1261.                         DO;
  1262.                             CALL UP_Rechnung_OK;
  1263.                             UEB_RechNr = right("000000" || Test,6);
  1264.                             IF UEB_RechNr > R_max THEN
  1265.                                 UEB_RechNr = R_max;
  1266.                             ELSE IF UEB_RechNr < 1 THEN
  1267.                                 UEB_RechNr = "000001";
  1268.                             CALL UP_Rechnung_fuellen;
  1269.                         END;
  1270.                 END;
  1271.             WHEN msgid2 = 161 | msgcode2 = 62 THEN
  1272.                 DO;
  1273.                     Test = UEB_RechNr + 1;
  1274.                     CALL UP_Rechnung_OK;
  1275.                     IF UEB_RechNr <= R_max THEN
  1276.                         DO;
  1277.                             UEB_RechNr = right("000000" || Test,6);
  1278.                             CALL UP_Rechnung_fuellen;
  1279.                         END;
  1280.                 END;
  1281.             WHEN msgid2 = 162 | msgcode2 = 60 THEN
  1282.                 DO;
  1283.                     Test = UEB_RechNr - 1;
  1284.                     CALL UP_Rechnung_OK;
  1285.                     IF UEB_RechNr > 0 THEN
  1286.                         DO;
  1287.                             UEB_RechNr = right("000000" || Test,6);
  1288.                             CALL UP_Rechnung_fuellen;
  1289.                         END;
  1290.                 END;
  1291.             WHEN msgid2 = 163 | msgclass2 = CLOSEWINDOW | msgcode2 = 69 | msgcode2 = 101 | msgcode2 = 27  THEN
  1292.                 DO;
  1293.                     CALL UP_Rechnung_OK;
  1294.                     extime2 = 1;
  1295.                 END;
  1296.             WHEN msgid2 = 164 | msgcode2 = 68 | msgcode2 = 100 THEN
  1297.                 DO;
  1298.                     CALL UP_Rechnung_OK;
  1299.                     CALL UP_Drucken;
  1300.                     ZW_KundenNr    = right("000000" || GETSTRGAD(w2,11,null()),6);
  1301.                     UEB_RechNr    = right("000000" || GETSTRGAD(w2,160,null()),6);
  1302.                 END;
  1303.             WHEN msgid2 = 165 THEN
  1304.                 CALL UP_Rechnung_Fuellen;
  1305.             OTHERWISE
  1306.                 NOP;
  1307.         END;
  1308. RETURN 1;
  1309.  
  1310. Auswertung3:
  1311.     SELECT
  1312.         WHEN msgcode3 = 82 | msgcode3 = 114 THEN
  1313.             ACTIVATEGADID(10,w3,null());
  1314.         WHEN msgcode3 = 75 | msgcode3 = 107 THEN
  1315.             ACTIVATEGADID(11,w3,null());
  1316.         WHEN msgid3 = 10 THEN /* Rechnungsnummer wurde eingegeben/geändert */
  1317.             DO;
  1318.                 Test = GETSTRGAD(w3,10,null());
  1319.                 IF Test ~= UEB_RechNr THEN
  1320.                     DO;
  1321.                         UEB_RechNr = TEST;
  1322.                         IF DATATYPE(UEB_RechNr,'w') THEN
  1323.                             DO;
  1324.                                 IF UEB_RechNr > (R_max - 1) THEN
  1325.                                     UEB_RechNr = R_max - 1;
  1326.                                 UEB_RechNr = RIGHT("000000" || UEB_RechNr,6);
  1327.                             END;
  1328.                         ELSE
  1329.                             DO;
  1330.                                 rtezrequest("Rechnungsnummer nicht numerisch!",,,ReqCent);
  1331.                                 ACTIVATEGADID(10,w3,null());
  1332.                                 UEB_RechNr = "000001";
  1333.                             END;
  1334.                         CALL SETSTRGADID(w3,10,UEB_RechNr,null());
  1335.                         REFRESHGLIST(conxgad3,w3,null(),-1);
  1336.                     END;
  1337.             END;
  1338.         WHEN msgid3 = 11 THEN /* Kundennummer wurde eingegeben/geändert */
  1339.             DO;
  1340.                 Test = GETSTRGAD(w3,11,null());
  1341.                 IF Test ~= ZW_KundenNr THEN
  1342.                     DO;
  1343.                         ZW_KundenNr = TEST;
  1344.                         IF DATATYPE(ZW_KundenNr,'w') THEN
  1345.                             DO;
  1346.                                 IF ZW_KundenNr > (K_max - 1) THEN
  1347.                                     ZW_KundenNr = K_max - 1;
  1348.                                 ZW_KundenNr = RIGHT(("000000" || ZW_KundenNr),6);
  1349.                             END;
  1350.                         ELSE
  1351.                             DO;
  1352.                                 rtezrequest("Kundennummer nicht numerisch!",,,ReqCent);
  1353.                                 ACTIVATEGADID(11,w3,null());
  1354.                                 ZW_KundenNr = "000001";
  1355.                             END;
  1356.                         CALL SETSTRGADID(w3,11,ZW_KundenNr,null());
  1357.                         REFRESHGLIST(conxgad3,w3,null(),-1);
  1358.                     END;
  1359.             END;
  1360.         WHEN msgid3 = 12 THEN
  1361.             Druckart = GETVALUE(mlabels,msgcode3*4,4,'s');
  1362.         WHEN msgid3 = 13 | msgcode3 = 80 | msgcode3 = 112 THEN
  1363.             DO;
  1364.                 address COMMAND 'Printer >NIL:';
  1365.                 prefs = allocmem(232);
  1366.                 x = getprefs(prefs,232);
  1367.                 B_laenge = GETVALUE(prefs,178,2,'n');
  1368.                 call freemem(prefs,232);
  1369.             END;
  1370.         WHEN msgid3 = 14 | msgcode3 = 86 | msgcode3 = 118 THEN
  1371.             DO;
  1372.                 x = rtfilerequest("ram:",,"Wählen Sie das Druckverzeichnis",,"rtfi_flags=freqf_nofiles" ReqCent);
  1373.                 IF rtresult THEN;
  1374.                     Druckverz = x;
  1375.             END;
  1376.         WHEN msgid3 = 15 | msgcode3 = 67 | msgcode3 = 99 THEN
  1377.             DO;
  1378.                 IF Druckart = "Drucker" THEN
  1379.                     DO;
  1380.                         Druckfile = "t:Druck"
  1381.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent);
  1382.                     END;
  1383.                 ELSE
  1384.                     DO;
  1385.                         Druckfile = Druckverz || "Rechnung." || UEB_RechNr;
  1386.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1387.                     END;
  1388.                 IF Ergebnis = 1 then
  1389.                     DO;
  1390.                         CALL UP_R_Berechnung;
  1391.                         Z.1    = D_Rueck
  1392.                         IF D_YAbst < 2 THEN
  1393.                             DO I = D_YAbst TO 2;
  1394.                                 Z.1 = Z.1 || LF;
  1395.                             END;
  1396.                         X = 7-D_XAbst;
  1397.                         IF X < 0 THEN
  1398.                             X = 0;
  1399.                         Z.1    = Z.1 || Copies(" ",X) left(FI_Anrede,55) || right(datum,10);
  1400.                         Z.2    = Copies(" ",X) FI_VorName FI_Name;
  1401.                         Z.3    = Copies(" ",X) FI_Strasse LF;
  1402.                         Z.4    = Copies(" ",X) FI_PLZ FI_Ort LF LF LF LF;
  1403.                         Z.5    = Copies(" ",X) D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF;
  1404.                         Z.6    = Copies(" ",X) KD_Anrede.ZW_KundenNr;
  1405.                         Z.7    = Copies(" ",X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1406.                         Z.8    = Copies(" ",X) KD_Strasse.ZW_KundenNr LF;
  1407.                         Z.9    = Copies(" ",X) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr
  1408.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1409.                             Z.9 = Z.9 || "   (" || KD_Land.ZW_KundenNr || ")";
  1410.                         Z.9  = Z.9 || LF || LF || LF;
  1411.                         Z.10 = Copies(" ",X) "Kundennr:" ZW_KundenNr;
  1412.                         Z.11 = Copies(" ",X) "Rechnung:" UEB_RechNr;
  1413.                         Z.12 = Copies(" ",X) "Datum   :" RE_Datum.UEB_RechNr LF;
  1414.                         Z.13 = Copies(" ",X) "Art.Nr Anzahl" left(" Artikelbezeichnung",33) "Preis:     Summe:";
  1415.                         Z.14 = Copies(" ",X) Copies("-",65);
  1416.                         DO i = 1 to I_max;
  1417.                             j = i + 14;
  1418.                             IF ZW_Art_Nr.i > "" THEN
  1419.                                 Z.j = Copies(" ",X) ZW_Art_Nr.i right(ZW_Menge.i,6) || "  " || left(ZW_ArtBez.i,28) right(ZW_EPreis.i,10) right(ZW_Summe.i,10);
  1420.                             ELSE
  1421.                                 Z.j = "";
  1422.                         END;
  1423.                         IF I_max = 11 THEN
  1424.                             DO;
  1425.                                 Z.26 = "";
  1426.                                 Z.27 = "";
  1427.                             END;
  1428.                         IF ZW_Rab > 0 THEN
  1429.                             DO;
  1430.                                 TEXT = "Abzüglich"  ZW_Rabatt  "% Rabatt =";
  1431.                                 Z.28 = Copies(" ",X) left(TEXT,55) right(ZW_Rab,9);
  1432.                             END;
  1433.                         ELSE
  1434.                             Z.28 = "";
  1435.                         Z.29 = Copies(" ",X) Copies("-",65);
  1436.                         Z.30 = Copies(" ",X) left("Gesamt Netto DM:",54) right(ZW_Endsumme-ZW_MWSt,10);
  1437.                         Z.31 = Copies(" ",X) left("zzgl. Mehrwertsteuer" MWSt_Satz.1 "% bzw." MWSt_Satz.2 "%",55) ZW_MWSt;
  1438.                         Z.32 = Copies(" ",X) left("Gesamt Brutto DM:",54) ZW_Endsumme;
  1439.                         Z.33 = Copies(" ",X) Copies("=",65) LF LF;
  1440.                         Z.34 = Copies(" ",X) D_KEin || "Bitte bei allen Bestellungen die Kundennummer angeben" D_KAus LF;
  1441.                         Z.35 = Copies(" ",X) "Bankverbindung:"
  1442.                         Z.36 = Copies(" ",X) FI_BankBez "  BLZ:" FI_BLZ "  Konto:" FI_Konto LF LF;
  1443.                         Z.37 = Copies(" ",X) "Vielen Dank für Ihren Auftrag" D_Ende;
  1444.                         Druckdat = "Rechnung";
  1445.                         OPEN(Druckdat,Druckfile,'write');
  1446.                         DO i = 1 to 37;
  1447.                             WRITELN(Druckdat,Z.i);
  1448.                         END;
  1449.                         CLOSE(Druckdat);
  1450.                         IF Druckart = "Drucker" THEN
  1451.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1452.                     END;
  1453.             END;
  1454.         WHEN msgid3 = 16 | msgcode3 = 84 | msgcode3 = 116 THEN
  1455.             DO;
  1456.                 IF Druckart = "Drucker" THEN
  1457.                     DO;
  1458.                         Druckfile = "t:Druck"
  1459.                         Ergebnis = rtezrequest("Bitte leere Paketkarte einlegen","Einfach|Nachnahme|Abbruch",,ReqCent);
  1460.                     END;
  1461.                 ELSE
  1462.                     DO;
  1463.                         Druckfile = Druckverz || "Paketkarte." || UEB_RechNr;
  1464.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Einfach|Nachnahme|Abbruch",,ReqCent);
  1465.                     END;
  1466.                 IF Ergebnis ~= 0 then
  1467.                     DO;
  1468.                         CALL UP_R_Berechnung;
  1469.                         Z.1    = D_Rueck
  1470.                         IF D_YAbst < 2 THEN
  1471.                             DO I = D_YAbst TO 2;
  1472.                                 Z.1 = Z.1 || LF;
  1473.                             END;
  1474.                         X = 2-D_XAbst;
  1475.                         IF X < 0 THEN
  1476.                             X = 0;
  1477.                         Z.1 = Z.1 || Copies(" ",X) FI_VorName FI_Name LF;
  1478.                          Z.2 = Copies(" ",X) FI_Strasse LF;
  1479.                         Z.3 = Copies(" ",X) FI_PLZ FI_Ort LF LF;
  1480.                         IF Ergebnis = 1 THEN
  1481.                             Z.4 = "";
  1482.                         ELSE
  1483.                             Z.4 = Copies(" ",30+X) D_CRot  "Nachnahme=" ZW_Endsumme D_CSchw;
  1484.                         Z.5 = Copies(" ",X) left(FI_BankKurz,29);
  1485.                         Z.6 = Copies(" ",X) "BLZ:" FI_BLZ;
  1486.                         Z.7 = Copies(" ",X) "Konto:" FI_Konto LF LF;
  1487.                         Z.8 = Copies(" ",30+X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF;
  1488.                         Z.9 = Copies(" ",30+X) KD_Strasse.ZW_KundenNr LF LF LF;
  1489.                         Z.10 = D_SGross  KD_PLZ.ZW_KundenNr D_SStand || CR || Copies(" ",30+X) KD_Ort.ZW_KundenNr
  1490.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1491.                             Z.10 = Z.10 || "   (" || KD_Land.ZW_KundenNr || ")";
  1492.                         Z.10 = Z.10 || D_Ende;
  1493.                         Druckdat = "Paketkarte";
  1494.                         OPEN(Druckdat,Druckfile,'write');
  1495.                         DO i = 1 to 10;
  1496.                             WRITELN(Druckdat,Z.i);
  1497.                         END;
  1498.                         CLOSE(Druckdat);
  1499.                         IF Druckart = "Drucker" THEN
  1500.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1501.                     END;
  1502.             END;
  1503.         WHEN msgid3 = 17 | msgcode3 = 90 | msgcode3 = 122 THEN
  1504.             DO;
  1505.                 IF Druckart = "Drucker" THEN
  1506.                     DO;
  1507.                         Druckfile = "t:Druck"
  1508.                         Ergebnis = rtezrequest("Bitte leeren Zahlschein einlegen","Klein|Groß|Abbruch",,ReqCent);
  1509.                     END;
  1510.                 ELSE
  1511.                     DO;
  1512.                         Druckfile = Druckverz || "Zahlschein." || UEB_RechNr;
  1513.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Klein|Groß|Abbruch",,ReqCent);
  1514.                     END;
  1515.                 IF Ergebnis ~= 0 then
  1516.                     DO;
  1517.                         CALL UP_R_Berechnung;
  1518.                         Z.1    = D_Rueck
  1519.                         IF D_YAbst < 5 THEN
  1520.                             DO I = D_YAbst TO 4;
  1521.                                 Z.1 = Z.1 || LF;
  1522.                             END;
  1523.                         X = 3-D_XAbst;
  1524.                         IF X < 0 THEN
  1525.                             X = 0;
  1526.                         Z.8  = UP_Sperr(left(FI_Name Fi_VorName,26));
  1527.                         Z.1  = Z.1 || Copies(" ",X) || Z.8 || LF;
  1528.                         Z.8  = UP_Sperr(COMPRESS(FI_Konto));
  1529.                         Z.9  = UP_Sperr(COMPRESS(FI_BLZ));
  1530.                         Z.2  = Copies(" ",X) || left(Z.8,10) || CR || Copies(" ",38+X) || Z.9 || LF;
  1531.                         Z.8  = UP_Sperr(left(FI_BankBez,26))
  1532.                         Z.3  = Copies(" ",X) || Z.8 || LF;
  1533.                         i = UP_Sperr(ZW_Endsumme - 3.00);
  1534.                         Z.4  = Copies(" ",X+30) || i || LF;
  1535.                         Z.8  = UP_Sperr("ReNr:" UEB_RechNr);
  1536.                         Z.5  = Copies(" ",X) || Z.8 || LF || LF || LF;
  1537.                         Z.8  = UP_Sperr(left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr || "," KD_Ort.ZW_KundenNr,27));
  1538.                         Z.6  = Copies(" ",X) || Z.8 || LF;
  1539.                         Z.7  = Copies(" ",22+X) || i;
  1540.                         Druckdat = "Zahlschein"
  1541.                         OPEN(Druckdat,Druckfile,'write');
  1542.                         IF Ergebnis = 1 THEN
  1543.                             max = 7;
  1544.                         ELSE
  1545.                             DO;
  1546.                                 max = 15;
  1547.                                 Z.8  = LF || LF || LF || LF || LF || LF || LF || LF || LF || Copies(" ",16+X) || FI_Name FI_VorName;
  1548.                                 Z.9  = Copies(" ",16+X) || FI_Strasse;
  1549.                                 Z.10 = Copies(" ",16+X) || FI_PLZ FI_Ort || LF || LF || LF || LF || LF || LF;
  1550.                                 ZW_Endsumme = right(ZW_Endsumme,9);
  1551.                                 Z.11 = Copies(" ",X-1) || right(left(ZW_Endsumme,6),5) || right(ZW_Endsumme,27) LF;
  1552.                                 Z.12 = Copies(" ",X-1) || left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr,15) Copies(" ",9) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF;
  1553.                                 Z.13 = Copies(" ",X-1) || left(KD_Strasse.ZW_KundenNr,15) Copies(" ",9) KD_Strasse.ZW_KundenNr LF;
  1554.                                 Z.14 = Copies(" ",X-1) || left(KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr,15);
  1555.                                 Z.15 = Copies(" ",24+X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1556.                             END;
  1557.                         Z.max = Z.max || D_Ende;
  1558.                         DO i = 1 to max;
  1559.                             WRITELN(Druckdat,Z.i);
  1560.                         END;
  1561.                         CLOSE(Druckdat);
  1562.                         IF Druckart = "Drucker" THEN
  1563.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1564.                     END;
  1565.             END;
  1566.         WHEN msgid3 = 18 | msgcode3 = 77 | msgcode3 = 109 THEN
  1567.             DO;
  1568.                 MAdd.01 = 0;
  1569.                 MAdd.02 = 31;
  1570.                 i = right(datum,4);
  1571.                 i = i / 4;
  1572.                 i = lastpos('.',i);
  1573.                 IF i = 0 THEN
  1574.                     MAdd.03 = MAdd.02 + 29;
  1575.                 ELSE
  1576.                     MAdd.03 = MAdd.02 + 28;
  1577.                 MAdd.04 = MAdd.03 + 31;
  1578.                 MAdd.05 = MAdd.04 + 30;
  1579.                 MAdd.06 = MAdd.05 + 31;
  1580.                 MAdd.07 = MAdd.06 + 30;
  1581.                 MAdd.08 = MAdd.07 + 31;
  1582.                 MAdd.09 = MAdd.08 + 31;
  1583.                 MAdd.10 = MAdd.09 + 30;
  1584.                 MAdd.11 = MAdd.10 + 31;
  1585.                 MAdd.12 = MAdd.11 + 30;
  1586.                 Monat    = SUBSTR(RE_Datum.UEB_RechNr,4,2);
  1587.                 Tag    = LEFT(RE_Datum.UEB_RechNr,2);
  1588.                 Jahr    = RIGHT(RE_Datum.UEB_RechNr,4);
  1589.                 Rec    = Tag + MAdd.Monat + (365.2423482188 * Jahr);
  1590.                 Rec    = trunc(Rec)
  1591.                 Nun    = Date(b);
  1592.                 Dif    = Nun - Rec;
  1593.                 CALL UP_R_Berechnung;
  1594.                 Select;
  1595.                     WHEN RE_Mahnung.UEB_RechNr = 1 THEN
  1596.                         DO;
  1597.                             MahnNr = rtezrequest("Es wurde bereits eine Mahnung gedruckt!" LF ||,
  1598.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen.",
  1599.                                                         ,"2.Mahnung|1.Mahnung|Abbruch",,ReqCent);
  1600.                             SELECT;
  1601.                                 WHEN MahnNr = 1 THEN
  1602.                                     MahnNr = 2;
  1603.                                 WHEN MahnNr = 2 THEN
  1604.                                     MahnNr = 1;
  1605.                                 OTHERWISE
  1606.                                     NOP;
  1607.                             END;
  1608.                         END;
  1609.                     WHEN RE_Mahnung.UEB_RechNr = 2 THEN
  1610.                         DO;
  1611.                             MahnNr = rtezrequest("Es wurden bereits zwei Mahnungen gedruckt!" LF ||,
  1612.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen.",
  1613.                                                         ,"3.Mahnung|2.Mahnung|1.Mahnung|Abbruch",,ReqCent);
  1614.                             SELECT;
  1615.                                 WHEN MahnNr = 1 THEN
  1616.                                     MahnNr = 3;
  1617.                                 WHEN MahnNr = 3 THEN
  1618.                                     MahnNr = 1;
  1619.                                 OTHERWISE
  1620.                                     NOP;
  1621.                             END;
  1622.                         END;
  1623.                     WHEN RE_Mahnung.UEB_RechNr = 3 THEN
  1624.                         DO;
  1625.                             MahnNr = rtezrequest("Es wurden bereits drei Mahnungen gedruckt!" LF ||,
  1626.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen" LF ||,
  1627.                                                         "Es ist KEINE weiter Mahnung möglich",
  1628.                                                         ,"Abbruch|3.Mahnung|2.Mahnung|1.Mahnung",,ReqCent);
  1629.                             SELECT;
  1630.                                 WHEN MahnNr = 0 THEN
  1631.                                     MahnNr = 1;
  1632.                                 WHEN MahnNr = 1 THEN
  1633.                                     MahnNr = 0;
  1634.                                 WHEN MahnNr = 2 THEN
  1635.                                     MahnNr = 3;
  1636.                                 WHEN MahnNr = 3 THEN
  1637.                                     MahnNr = 2;
  1638.                                 OTHERWISE
  1639.                                     NOP;
  1640.                             END;
  1641.                         END;
  1642.                     OTHERWISE
  1643.                         MahnNr = rtezrequest("Es wurde noch keine Mahnung gedruckt!" LF ||,
  1644.                                                     "Seit Rechnungserstellung sind" Dif "Tage vergangen",
  1645.                                                     ,"1.Mahnung|Abbruch",,ReqCent);
  1646.                 END;
  1647.                 IF MahnNr = 0 THEN
  1648.                     Ergebnis = 0;
  1649.                 ELSE
  1650.                     DO;
  1651.                         IF Druckart = "Drucker" THEN
  1652.                             DO;
  1653.                                 Druckfile = "t:Druck"
  1654.                                 Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent);
  1655.                             END;
  1656.                         ELSE
  1657.                             DO;
  1658.                                 Druckfile = Druckverz || "Mahnung-" || MahnNr || "."  || UEB_RechNr;
  1659.                                 Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1660.                             END;
  1661.                     END;
  1662.                 IF Ergebnis = 1 then
  1663.                     DO;
  1664.                         IF RE_Mahnung.UEB_RechNr < MahnNr THEN
  1665.                             RE_Mahnung.UEB_RechNr = MahnNr;
  1666.                         CALL UP_R_Berechnung;
  1667.                         Z.1    = D_Rueck
  1668.                         IF D_YAbst < 2 THEN
  1669.                             DO I = D_YAbst TO 2;
  1670.                                 Z.1 = Z.1 || LF;
  1671.                             END;
  1672.                         X = 7-D_XAbst;
  1673.                         IF X < 0 THEN
  1674.                             X = 0;
  1675.                         Z.1  = Z.1 || Copies(" ",X) || left(FI_Anrede,55) || right(datum,10);
  1676.                         Z.2  = Copies(" ",X) || FI_VorName FI_Name;
  1677.                         Z.3  = Copies(" ",X) || FI_Strasse LF;
  1678.                         Z.4  = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF;
  1679.                         Z.5  = Copies(" ",X) || D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF;
  1680.                         Z.6  = Copies(" ",X) || KD_Anrede.ZW_KundenNr;
  1681.                         Z.7  = Copies(" ",X) || KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1682.                         Z.8  = Copies(" ",X) || KD_Strasse.ZW_KundenNr LF;
  1683.                         Z.9  = Copies(" ",X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr
  1684.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1685.                             Z.9 = Z.9 || "   (" || KD_Land.ZW_KundenNr || ")";
  1686.                         Z.9  = Z.9 || LF || LF || LF || LF || LF;
  1687.                         Z.10 = Copies(" ",X) || "Kundennr:" ZW_KundenNr;
  1688.                         Z.11 = Copies(" ",X) || "Betreff Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr || LF || LF || LF;
  1689.                         Z.12 = Copies(" ",X) || KD_BAnr.ZW_KundenNr || LF;
  1690.                         SELECT
  1691.                             WHEN MahnNr = 1 THEN
  1692.                                 DO;
  1693.                                     ZW_SumPMahn = ZW_Endsumme + 1.50;
  1694.                                     Z.13 = Copies(" ",X) || "leider  muß ich  Ihnen mitteilen,  daß Sie meine  Rechnung" UEB_RechNr "vom";
  1695.                                     Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "bisher  noch nicht bezahlt  haben.  Ich möchte Sie deshalb";
  1696.                                     Z.15 = Copies(" ",X) || "bitten, dieses Versäumnis nachzuholen und den ausstehenden Betrag von";
  1697.                                     Z.16 = Copies(" ",X) || right(ZW_Endsumme,9) "DM  +  1.50 DM  Mahngebühr  (Gesamt:" right(ZW_SumPMahn,9) || "DM)  auf mein";
  1698.                                     Z.17 = Copies(" ",X) || "Konto zu überweisen.";
  1699.                                     Z.18 = LF;
  1700.                                 END;
  1701.                             WHEN MahnNr = 2 THEN
  1702.                                 DO;
  1703.                                     ZW_SumPMahn = ZW_Endsumme + 3.00;
  1704.                                     Z.13 = Copies(" ",X) || "leider  muß ich  Ihnen mitteilen,  daß Sie meine  Rechnung" UEB_RechNr "vom";
  1705.                                     Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "trotz nochmaliger Aufforderung  bisher  noch nicht bezahlt";
  1706.                                     Z.15 = Copies(" ",X) || "haben. Ich möchte Sie deshalb nachdrücklich dazu auffordern, Ihr Ver-";
  1707.                                     Z.16 = Copies(" ",X) || "säumnis nachzuholen  und den  ausstehenden Betrag von " right(ZW_Endsumme,9) "DM +";
  1708.                                     Z.17 = Copies(" ",X) || "3.00 DM Mahngebühr  (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!";
  1709.                                     Z.18 = LF;
  1710.                                 END;
  1711.                             WHEN MahnNr = 3 THEN
  1712.                                 DO;
  1713.                                     ZW_SumPMahn = ZW_Endsumme + 4.50;
  1714.                                     Z.13 = Copies(" ",X) || "trotz zweier Mahnungen haben Sie meine Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr;
  1715.                                     Z.14 = Copies(" ",X) || "nicht überwiesen!  Dies ist meine letzte Aufforderung, Ihr Versäumnis";
  1716.                                     Z.15 = Copies(" ",X) || "nachzuholen  und den ausstehenden Betrag von " right(ZW_Endsumme,9) "DM +  4.50 DM";
  1717.                                     Z.16 = Copies(" ",X) || "Mahngebühr (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!";
  1718.                                     Z.17 = Copies(" ",X) || "Wenn Sie meiner  Aufforderung nicht  nachkommen,  behalte ich mir ge-";
  1719.                                     Z.18 = Copies(" ",X) || "richtliche Schritte vor." || LF || LF;
  1720.                                 END;
  1721.                             OTHERWISE
  1722.                                 NOP;
  1723.                         END;
  1724.                         Z.19 = Copies(" ",X) || "Bankverbindung:";
  1725.                         Z.20 = Copies(" ",X) || FI_BankBez "  BLZ:" FI_BLZ "  Konto:" FI_Konto LF;
  1726.                         Z.21 = Copies(" ",X) || "Mit freundlichen Grüßen" || LF || LF || LF;
  1727.                         Z.22 = Copies(" ",X) || FI_VorName FI_Name D_Ende;
  1728.                         Druckdat = "Mahnung";
  1729.                         OPEN(Druckdat,Druckfile,'write');
  1730.                         DO i = 1 to 22;
  1731.                             WRITELN(Druckdat,Z.i);
  1732.                         END;
  1733.                         CLOSE(Druckdat);
  1734.                         IF Druckart = "Drucker" THEN
  1735.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1736.                     END;
  1737.             END;
  1738.         WHEN msgid3 = 19 | msgcode3 = 69 | msgcode3 = 101 THEN
  1739.             DO;
  1740.                 IF Druckart = "Drucker" THEN
  1741.                     DO;
  1742.                         Druckfile = "t:Druck"
  1743.                         Ergebnis = rtezrequest("Bitte Etiketten einlegen" LF ||,
  1744.                                                         "Firmen oder Kundenetiketten?",
  1745.                                                         ,"Firma|Kunde|Abbruch",,ReqCent);
  1746.                     END;
  1747.                 ELSE
  1748.                     DO;
  1749.                         Druckfile = Druckverz || "Etiketten." || ZW_KundenNr;
  1750.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||,
  1751.                                                         "Firmen oder Kundenetiketten?",
  1752.                                                         ,"Firma|Kunde|Abbruch",,ReqCent);
  1753.                     END;
  1754.                 IF Ergebnis = 1 then
  1755.                     DO;
  1756.                         Z.1 = LF Fi_Anrede;
  1757.                         Z.2 = "" FI_VorName FI_Name;
  1758.                         Z.3 = "" FI_Strasse;
  1759.                         Z.4 = LF FI_PLZ FI_Ort;
  1760.                         Z.5 = LF LF;
  1761.                     END;
  1762.                 IF Ergebnis = 2 then
  1763.                     DO;
  1764.                         Z.1 = LF KD_Anrede.ZW_KundenNr;
  1765.                         Z.2 = "" KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1766.                         Z.3 = "" KD_Strasse.ZW_KundenNr;
  1767.                         Z.4 = LF KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1768.                         IF FI_Land = KD_Land.ZW_KundenNr THEN
  1769.                             Z.5 = LF LF;
  1770.                         ELSE
  1771.                             Z.5 = " (" || KD_Land.ZW_KundenNr || ")" LF LF;
  1772.                     END;
  1773.                 IF Ergebnis > 0 then
  1774.                     DO;
  1775.                         Anzahl = rtgetlong(, , "Wieviel Etiketten wollen Sie drucken:", , ,"rtgl_min = 1 rtgl_max = 999");
  1776.                         Druckdat = "Etikett";
  1777.                         OPEN(Druckdat,Druckfile,'write');
  1778.                         WRITELN(Druckdat,D_Rueck);
  1779.                         DO j = 1 to Anzahl;
  1780.                             DO i = 1 to 5;
  1781.                                 WRITELN(Druckdat,Z.i);
  1782.                             END;
  1783.                         END;
  1784.                         WRITELN(Druckdat,D_Ende);
  1785.                         CLOSE(Druckdat);
  1786.                         IF Druckart = "Drucker" THEN
  1787.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1788.                     END;
  1789.             END;
  1790.         WHEN msgid3 = 20 | msgcode3 = 85 | msgcode3 = 117 THEN
  1791.             DO;
  1792.                 IF Druckart = "Drucker" THEN
  1793.                     DO;
  1794.                         Druckfile = "t:Druck"
  1795.                         Ergebnis = rtezrequest("Bitte Umschlag einlegen." LF ||,
  1796.                                                         "Welches Format wünschen Sie?",
  1797.                                                         ,"C6/B6|DL|Abbruch",,ReqCent);
  1798.                     END;
  1799.                 ELSE
  1800.                     DO;
  1801.                         Druckfile = Druckverz || "Umschläge." || ZW_KundenNr;
  1802.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||,
  1803.                                                         "Welches Format wünschen Sie?",
  1804.                                                         ,"C6/B6|DL|Abbruch",,ReqCent);
  1805.                     END;
  1806.                 IF Ergebnis > 0 then
  1807.                     DO;
  1808.                         Z.1    = D_Rueck
  1809.                         IF D_YAbst < 2 THEN
  1810.                             DO I = D_YAbst TO 2;
  1811.                                 Z.1 = Z.1 || LF;
  1812.                             END;
  1813.                         X = 3-D_XAbst;
  1814.                         IF X < 0 THEN
  1815.                             X = 0;
  1816.                         SELECT
  1817.                             WHEN Ergebnis = 1 then
  1818.                                 Breite = 22+X;
  1819.                             WHEN Ergebnis = 2 then
  1820.                                 Breite = 31+X;
  1821.                             OTHERWISE
  1822.                                 NOP;
  1823.                         END;
  1824.                         Z.1 = Z.1 || Copies(" ",X) || Fi_Anrede;
  1825.                         Z.2 = Copies(" ",X) || FI_VorName FI_Name;
  1826.                         Z.3 = Copies(" ",X) || FI_Strasse LF;
  1827.                         Z.4 = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF LF LF;
  1828.                         Z.5 = Copies(" ",Breite) KD_Anrede.ZW_KundenNr ;
  1829.                         Z.6 = Copies(" ",Breite) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1830.                         Z.7 = Copies(" ",Breite) KD_Strasse.ZW_KundenNr LF;
  1831.                         Z.8 = Copies(" ",Breite) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1832.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1833.                             Z.8 = Z.8 "(" || KD_Land.ZW_KundenNr || ")";
  1834.                         Z.8 = Z.8 || D_Ende;
  1835.                         Druckdat = "Umschlag";
  1836.                         OPEN(Druckdat,Druckfile,'write');
  1837.                         DO i = 1 to 8;
  1838.                             WRITELN(Druckdat,Z.i);
  1839.                         END;
  1840.                         CLOSE(Druckdat);
  1841.                         IF Druckart = "Drucker" THEN
  1842.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  1843.                     END;
  1844.             END;
  1845.         WHEN msgid3 = 21 | msgcode3 = 76 | msgcode3 = 108 THEN
  1846.             DO;
  1847.                 IF Druckart = "Drucker" THEN
  1848.                     DO;
  1849.                         Druckfile = "t:Druck"
  1850.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1851.                     END;
  1852.                 ELSE
  1853.                     DO;
  1854.                         Druckfile = Druckverz || "Artikelliste";
  1855.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1856.                     END;
  1857.                 IF Ergebnis > 0 then
  1858.                     DO;
  1859.                         Druckdat = "Artikel"
  1860.                         OPEN(Druckdat,Druckfile,'write');
  1861.                         Z.6 = "ArtNr  Artikelbezeichnung                 Preis MWSt Buchk."
  1862.                         Z.7 = Copies("-",59);
  1863.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1864.                         WRITELN(Druckdat,Z.7);
  1865.                         Zeile = 3;
  1866.                         Z.6 = FF || Z.6;
  1867.                         DO j = 1 to (A_max - 1)
  1868.                             j = right("000000" || j,6);
  1869.                             Z.1 = j left(AR_ArtBez.j,30) right(AR_ArtPreis.j,9) right(Ar_ArtMWSt.j,4) right(AR_ArtBuch.j,6);
  1870.                             Zeile = Zeile + 1;
  1871.                             IF Zeile > B_laenge THEN
  1872.                                 DO;
  1873.                                     WRITELN(Druckdat,Z.6);
  1874.                                     WRITELN(Druckdat,Z.7);
  1875.                                     Zeile = 3;
  1876.                                 END;
  1877.                             WRITELN(Druckdat,Z.1);
  1878.                         END;
  1879.                         Z.1 = LF || "Ende der Auflistung" D_Ende;
  1880.                         WRITELN(Druckdat,Z.1);
  1881.                         CLOSE(Druckdat);
  1882.                         IF Druckart = "Drucker" THEN
  1883.                             address COMMAND "run copy >NIL: t:Druck to" Druckport;
  1884.                     END;
  1885.             END;
  1886.         WHEN msgid3 = 22 | msgcode3 = 83 | msgcode3 = 115 THEN
  1887.             DO;
  1888.                 IF Druckart = "Drucker" THEN
  1889.                     DO;
  1890.                         Druckfile = "t:Druck"
  1891.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1892.                     END;
  1893.                 ELSE
  1894.                     DO;
  1895.                         Druckfile = Druckverz || "Kundenliste";
  1896.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1897.                     END;
  1898.                 IF Ergebnis > 0 then
  1899.                     DO;
  1900.                         Druckdat = "Kunden"
  1901.                         OPEN(Druckdat,Druckfile,'write');
  1902.                         Z.6 = "Kunde  Vorname    Name       Straße               PLZ   Ort"
  1903.                         Z.7 = Copies("-",71);
  1904.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1905.                         WRITELN(Druckdat,Z.7);
  1906.                         Zeile = 3;
  1907.                         Z.6 = FF || Z.6;
  1908.                         DO j = 1 to (K_max - 1);
  1909.                             j = "000000" || j;
  1910.                             j = right(j,6);
  1911.                             Z.1 = j left(KD_Vorname.j,10) left(KD_Name.j,10) left(KD_Strasse.j,20) left(KD_PLZ.j,5) left(KD_Ort.j,15);
  1912.                             Zeile = Zeile + 1;
  1913.                             IF Zeile > B_laenge THEN
  1914.                                 DO;
  1915.                                     WRITELN(Druckdat,Z.6);
  1916.                                     WRITELN(Druckdat,Z.7);
  1917.                                     Zeile = 3;
  1918.                                 END;
  1919.                             WRITELN(Druckdat,Z.1);
  1920.                         END;
  1921.                         Z.1 = LF || "Ende der Auflistung" D_Ende;
  1922.                         WRITELN(Druckdat,Z.1);
  1923.                         CLOSE(Druckdat);
  1924.                         IF Druckart = "Drucker" THEN
  1925.                             address COMMAND "run >NIL: copy t:Druck to" Druckport
  1926.                     END;
  1927.             END;
  1928.         WHEN msgid3 = 23 | msgcode3 = 65 | msgcode3 = 97 THEN
  1929.             DO;
  1930.                 jahr = rtgetlong(, , "Für welches Jahr soll gedruckt werden :", , ,"rtgl_min = 1 rtgl_may = 9999");
  1931.                 IF Druckart = "Drucker" THEN
  1932.                     DO;
  1933.                         Druckfile = "t:Druck"
  1934.                         Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1935.                     END;
  1936.                 ELSE
  1937.                     DO;
  1938.                         Druckfile = Druckverz || "Einnahmen." || jahr;
  1939.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1940.                     END;
  1941.                 IF Ergebnis > 0 then
  1942.                     DO;
  1943.                         Z.6    = "Re.Nr  Datum      Ku.Nr  Art.Nr Anzahl     E.Preis       Summe    Endsumme"
  1944.                         Z.7    = Copies("-",74);
  1945.                         jahr_l    = LENGTH(jahr);
  1946.                         Endsumme    = 0;
  1947.                         MWSt        = 0;
  1948.                         Druckdat    = "Einnahmen";
  1949.                         OPEN(Druckdat,Druckfile,'write');
  1950.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1951.                         WRITELN(Druckdat,Z.7);
  1952.                         Zeile = 3;
  1953.                         Z.6 = FF || Z.6;
  1954.                         DO k = 1 to (R_max - 1);
  1955.                             l = right("000000" || k,6);
  1956.                             IF jahr = right(RE_Datum.l,jahr_l) THEN
  1957.                                 DO;
  1958.                                     UEB_RechNr = l;
  1959.                                     CALL UP_R_Berechnung;
  1960.                                     Z.1 = l RE_Datum.l RE_Kunde.l RE_Art.1.l right(RE_Anz.1.l,6) right(ZW_Epreis.1,11) right(ZW_Summe.1,11);
  1961.                                     ZEILE = ZEILE + 1;
  1962.                                     IF Zeile > B_laenge THEN
  1963.                                         DO;
  1964.                                             WRITELN(Druckdat,Z.6);
  1965.                                             WRITELN(Druckdat,Z.7);
  1966.                                             Zeile = 3;
  1967.                                         END;
  1968.                                     WRITELN(Druckdat,Z.1);
  1969.                                     DO i = 2 TO 12;
  1970.                                         IF RE_Anz.i.l > 0 THEN
  1971.                                             DO;
  1972.                                                 Z.1 = Copies(" ",24) RE_Art.i.l right(RE_Anz.i.l,6) right(ZW_Epreis.i,11) right(ZW_Summe.i,11);
  1973.                                                 ZEILE = ZEILE + 1;
  1974.                                                 IF Zeile > B_laenge THEN
  1975.                                                     DO;
  1976.                                                         WRITELN(Druckdat,Z.6);
  1977.                                                         WRITELN(Druckdat,Z.7);
  1978.                                                         Zeile = 3;
  1979.                                                     END;
  1980.                                                 WRITELN(Druckdat,Z.1);
  1981.                                             END;
  1982.                                     END;
  1983.                                     Z.1 = Copies(" ",24) right(RE_Art.13.l,6) right(RE_Anz.13.l,6) right(ZW_Epreis.13,11) right(ZW_Summe.13,11) right(ZW_Endsumme,11) LF;
  1984.                                     ZEILE = ZEILE + 2;
  1985.                                     IF Zeile > B_laenge THEN
  1986.                                         DO;
  1987.                                             WRITELN(Druckdat,Z.6);
  1988.                                             WRITELN(Druckdat,Z.7);
  1989.                                             Zeile = 3;
  1990.                                         END;
  1991.                                     WRITELN(Druckdat,Z.1);
  1992.                                     Endsumme    = Endsumme    + ZW_Endsumme;
  1993.                                     MWSt        = MWSt        + ZW_MWSt;
  1994.                                     ENetto    = Endsumme    - MWSt;
  1995.                                 END;
  1996.                         END;
  1997.                         Z.1 = Copies("-",74);
  1998.                         Z.2 = "Endsumme (Netto)  =" Copies(" ",38) right(ENetto,15);
  1999.                         Z.3 = "Mehrwertsteuer    =" Copies(" ",38) right(MWSt,15);
  2000.                         Z.4 = "Endsumme (Brutto) =" Copies(" ",38) right(Endsumme,15);
  2001.                         Z.5 = Copies("=",74) D_Ende;
  2002.                         IF Zeile > (B_laenge - 5) THEN
  2003.                             DO;
  2004.                                 WRITELN(Druckdat,Z.6);
  2005.                                 WRITELN(Druckdat,Z.7);
  2006.                                 Zeile = 3;
  2007.                             END;
  2008.                         DO i = 1 TO 5;
  2009.                             WRITELN(Druckdat,Z.i);
  2010.                         END;
  2011.                         CLOSE(Druckdat);
  2012.                         IF Druckart = "Drucker" THEN
  2013.                             address COMMAND "run >NIL: copy t:Druck to" Druckport;
  2014.                     END;
  2015.             END;
  2016.         WHEN msgclass3 = CLOSEWINDOW | msgcode3 = 27 THEN
  2017.             extime3 = 1;
  2018.         OTHERWISE
  2019.             NOP;
  2020.     END;
  2021. RETURN 1;
  2022.  
  2023. Auswertung4:
  2024.     SELECT
  2025.         WHEN msgcode4    = 86 | msgcode4 = 118 THEN
  2026.             ACTIVATEGADID(10,w4,null());
  2027.         WHEN msgid4        = 10 THEN
  2028.             ZW_VorName    = GETSTRGAD(w4,10,null());
  2029.         WHEN msgcode4    = 78 | msgcode4 = 110 THEN
  2030.             ACTIVATEGADID(11,w4,null());
  2031.         WHEN msgid4        = 11 THEN
  2032.             ZW_Name     = GETSTRGAD(w4,11,null());
  2033.         WHEN msgcode4    = 83 | msgcode4 = 115 THEN
  2034.             ACTIVATEGADID(12,w4,null());
  2035.         WHEN msgid4        = 12 THEN
  2036.             ZW_Strasse    = GETSTRGAD(w4,12,null());
  2037.         WHEN msgcode4    = 80 | msgcode4 = 112 THEN
  2038.             ACTIVATEGADID(13,w4,null());
  2039.         WHEN msgid4        = 13 THEN
  2040.             ZW_PLZ        = GETSTRGAD(w4,13,null());
  2041.         WHEN msgcode4    = 79 | msgcode4 = 111 THEN
  2042.             ACTIVATEGADID(14,w4,null());
  2043.         WHEN msgid4        = 14 THEN
  2044.             ZW_Ort        = GETSTRGAD(w4,14,null());
  2045.         WHEN msgcode4    = 76 | msgcode4 = 108 THEN
  2046.             ACTIVATEGADID(15,w4,null());
  2047.         WHEN msgid4        = 15 THEN
  2048.             ZW_Land        = GETSTRGAD(w4,15,null());
  2049.         WHEN msgcode4    = 71 | msgcode4 = 103 THEN
  2050.             ACTIVATEGADID(16,w4,null());
  2051.         WHEN msgid4        = 16 THEN
  2052.             ZW_GebTag    = GETSTRGAD(w4,16,null());
  2053.         WHEN msgcode4    = 84 | msgcode4 = 116 THEN
  2054.             ACTIVATEGADID(17,w4,null());
  2055.         WHEN msgid4        = 17 THEN
  2056.             ZW_Tel        = GETSTRGAD(w4,17,null());
  2057.         WHEN msgcode4    = 70 | msgcode4 = 102 THEN
  2058.             ACTIVATEGADID(18,w4,null());
  2059.         WHEN msgid4        = 18 THEN
  2060.             ZW_Fax        = GETSTRGAD(w4,18,null());
  2061.         WHEN msgcode4    = 220 | msgcode4 = 252 THEN
  2062.             ACTIVATEGADID(19,w4,null());
  2063.         WHEN msgid4        = 19 THEN
  2064.             ZW_Dfue        = GETSTRGAD(w4,19,null());
  2065.         WHEN msgcode4    = 49 THEN
  2066.             ACTIVATEGADID(20,w4,null());
  2067.         WHEN msgid4        = 20 THEN
  2068.             ZW_EMail1    = GETSTRGAD(w4,20,null());
  2069.         WHEN msgcode4    = 50 THEN
  2070.             ACTIVATEGADID(21,w4,null());
  2071.         WHEN msgid4        = 21 THEN
  2072.             ZW_EMail2    = GETSTRGAD(w4,21,null());
  2073.         WHEN msgcode4    = 51 THEN
  2074.             ACTIVATEGADID(22,w4,null());
  2075.         WHEN msgid4        = 22 THEN
  2076.             ZW_EMail3    = GETSTRGAD(w4,22,null());
  2077.         WHEN msgcode4    = 65 | msgcode4 = 97 THEN
  2078.             ACTIVATEGADID(23,w4,null());
  2079.         WHEN msgid4        = 23 THEN
  2080.             ZW_Anrede    = GETSTRGAD(w4,23,null());
  2081.         WHEN msgcode4    = 66 | msgcode4 = 98 THEN
  2082.             ACTIVATEGADID(24,w4,null());
  2083.         WHEN msgid4        = 24 THEN
  2084.             ZW_BAnr        = GETSTRGAD(w4,24,null());
  2085.         WHEN msgcode4    = 75 | msgcode4 = 107 THEN
  2086.             ACTIVATEGADID(25,w4,null());
  2087.         WHEN msgid4        = 25 THEN
  2088.             ZW_Komm        = GETSTRGAD(w4,25,null());
  2089.         WHEN msgcode4    = 46 | msgcode4 = 58 THEN
  2090.             ACTIVATEGADID(26,w4,null());
  2091.         WHEN msgid4        = 26 THEN
  2092.             ZW_BankBez    = GETSTRGAD(w4,26,null());
  2093.         WHEN msgcode4    = 90 | msgcode4 = 122 THEN
  2094.             ACTIVATEGADID(27,w4,null());
  2095.         WHEN msgid4        = 27 THEN
  2096.             ZW_BLZ        = GETSTRGAD(w4,27,null());
  2097.         WHEN msgcode4    = 42 | msgcode4 = 43 THEN
  2098.             ACTIVATEGADID(28,w4,null());
  2099.         WHEN msgid4 = 28 THEN
  2100.             ZW_Konto        = GETSTRGAD(w4,28,null());
  2101.         WHEN msgcode4    = 85 | msgcode4 = 117 THEN
  2102.             ACTIVATEGADID(29,w4,null());
  2103.         WHEN msgid4        = 29 THEN
  2104.             ZW_BankKurz = GETSTRGAD(w4,29,null());
  2105.         WHEN msgcode4    = 82 | msgcode4 = 114 THEN
  2106.             ACTIVATEGADID(30,w4,null());
  2107.         WHEN msgid4 = 30 THEN
  2108.             ZW_Rabatt   = GETSTRGAD(w4,30,null());
  2109.         WHEN msgid4 = 40 | msgcode4 = 73 | msgcode4 = 105 THEN
  2110.             DO;
  2111.                 CALL UP_Kunde_OK;
  2112.                 Druckart = GETVALUE(mlabels2,msgcode4*4,4,'s');
  2113.                 SELECT;
  2114.                     WHEN Druckart = "Firma" THEN
  2115.                         DO;
  2116.                             CALL OffGadget(41,w4,null());
  2117.                             CALL OffGadget(42,w4,null());
  2118.                             CALL OffGadget(43,w4,null());
  2119.                             CALL OffGadget(44,w4,null());
  2120.                             CALL OffGadget(45,w4,null());
  2121.                             CALL UP_Firma_alles;
  2122.                             CALL UP_ReErst_fuellen;
  2123.                         END;
  2124.                     OTHERWISE
  2125.                         DO;
  2126.                             CALL OnGadget(41,w4,null());
  2127.                             CALL OnGadget(42,w4,null());
  2128.                             CALL OnGadget(43,w4,null());
  2129.                             CALL OnGadget(44,w4,null());
  2130.                             CALL OnGadget(45,w4,null());
  2131.                             CALL UP_Kunden_alles;
  2132.                             CALL UP_ReErst_fuellen;
  2133.                         END;
  2134.                 END;
  2135.             END;
  2136.         WHEN msgcode4 = 72 | msgcode4 = 104 THEN
  2137.             ACTIVATEGADID(41,w4,null());
  2138.         WHEN msgid4 = 41 THEN
  2139.             DO;
  2140.                 Test = GETSTRGAD(w4,41,null());
  2141.                 IF Test = ZW_Suchen | Druckart = "Firma" THEN
  2142.                     NOP;
  2143.                 ELSE IF Test = "" THEN
  2144.                     ZW_Suchen = "";
  2145.                 ELSE
  2146.                     DO;
  2147.                         CALL UP_Kunde_OK;
  2148.                         j = LENGTH(Test);
  2149.                         x = "Nein";
  2150.                         Test = UPPER(Test);
  2151.                         DO I = 1 TO K_max;
  2152.                             I = right("000000" || I,6);
  2153.                             IF POS(Test,UPPER(KD_VorName.I)),
  2154.                                 + POS(Test,UPPER(KD_Name.I)),
  2155.                                 + POS(Test,UPPER(KD_Strasse.I)),
  2156.                                 + POS(Test,UPPER(KD_PLZ.I)),
  2157.                                 + POS(Test,UPPER(KD_Ort.I)),
  2158.                                 + POS(Test,UPPER(KD_Land.I)),
  2159.                                 + POS(Test,UPPER(KD_GebTag.I)),
  2160.                                 + POS(Test,UPPER(KD_Tel.I)),
  2161.                                 + POS(Test,UPPER(KD_Fax.I)),
  2162.                                 + POS(Test,UPPER(KD_Dfue.I)),
  2163.                                 + POS(Test,UPPER(KD_EMail1.I)),
  2164.                                 + POS(Test,UPPER(KD_EMail2.I)),
  2165.                                 + POS(Test,UPPER(KD_EMail3.I)),
  2166.                                 + POS(Test,UPPER(KD_Anrede.I)),
  2167.                                 + POS(Test,UPPER(KD_BAnr.I)),
  2168.                                 + POS(Test,UPPER(KD_Komm.I)),
  2169.                                 + POS(Test,UPPER(KD_BankBez.I)),
  2170.                                 + POS(Test,UPPER(KD_BLZ.I)),
  2171.                                 + POS(Test,UPPER(KD_Konto.I)),
  2172.                                 + POS(Test,UPPER(KD_BankKurz.I)) > 0 THEN
  2173.                                 DO;
  2174.                                     x = I;
  2175.                                     I = K_max;
  2176.                                 END;
  2177.                         END;
  2178.                         ZW_Suchen = Test;
  2179.                         IF x = "Nein" THEN
  2180.                             rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent);
  2181.                         ELSE
  2182.                             DO;
  2183.                                 ZW_KundenNr = x;
  2184.                                 CALL UP_Kunden_alles;
  2185.                                 CALL UP_ReErst_fuellen;
  2186.                             END;
  2187.                     END;
  2188.             END;
  2189.         WHEN msgcode4 = 47 | msgcode4 = 55 THEN
  2190.             ACTIVATEGADID(43,w4,null());
  2191.         WHEN msgid4 = 42 | msgcode4 = 67 | msgcode4 = 99 THEN
  2192.             IF ZW_Tel > "" THEN
  2193.                 DO;
  2194.                     rtezrequest("ARexx Port von WilhelmTEL fehlt leider noch!",,,ReqCent);
  2195.                 END;
  2196.             ELSE
  2197.                 rtezrequest("Nö, ohne Telefonnummer geht hier nix!",,,ReqCent);
  2198.         WHEN msgid4 = 43 THEN
  2199.             DO;
  2200.                 Test = GETSTRGAD(w4,43,null());
  2201.                 IF Test = ZW_KundenNr | Druckart = "Firma" THEN
  2202.                     NOP;
  2203.                 ELSE
  2204.                     DO;
  2205.                         CALL UP_Kunde_OK;
  2206.                         ZW_KundenNr = right("000000" || TEST,6)
  2207.                         IF DATATYPE(ZW_KundenNr,'n') THEN
  2208.                             DO;
  2209.                                 IF ZW_KundenNr > K_max  THEN
  2210.                                     ZW_KundenNr = K_max;
  2211.                                 ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6);
  2212.                             END;
  2213.                         ELSE
  2214.                             DO;
  2215.                                 rtezrequest("Kundennummer nicht numerisch, bitte prüfen!",,,ReqCent);
  2216.                                 ZW_KundenNr = "000001";
  2217.                             END;
  2218.                         CALL UP_Kunden_alles;
  2219.                         CALL UP_ReErst_fuellen;
  2220.                     END;
  2221.             END;
  2222.         WHEN msgid4 = 44 | msgcode4 = 62 THEN
  2223.             DO;
  2224.                 IF Druckart = "Firma" THEN
  2225.                     NOP;
  2226.                 ELSE
  2227.                     DO;
  2228.                         IF ZW_Suchen = "" THEN
  2229.                             DO;
  2230.                                 Test = ZW_KundenNr + 1;
  2231.                                 CALL UP_Kunde_OK;
  2232.                                 ZW_KundenNr = right("000000" || Test,6);
  2233.                                 IF ZW_KundenNr > K_max THEN
  2234.                                     ZW_KundenNr = K_max;
  2235.                                 ELSE
  2236.                                     DO;
  2237.                                         CALL UP_Kunden_alles;
  2238.                                         CALL UP_ReErst_fuellen;
  2239.                                     END;
  2240.                             END;
  2241.                         ELSE
  2242.                             DO;
  2243.                                 x = "Nein";
  2244.                                 DO I = (ZW_KundenNr + 1) TO (K_max-1);
  2245.                                 I = right("000000" || I,6);
  2246.                                 ZW_Suchen = UPPER(ZW_Suchen);
  2247.                                 IF POS(ZW_Suchen,UPPER(KD_VorName.I)),
  2248.                                     + POS(ZW_Suchen,UPPER(KD_Name.I)),
  2249.                                     + POS(ZW_Suchen,UPPER(KD_Strasse.I)),
  2250.                                     + POS(ZW_Suchen,UPPER(KD_PLZ.I)),
  2251.                                     + POS(ZW_Suchen,UPPER(KD_Ort.I)),
  2252.                                     + POS(ZW_Suchen,UPPER(KD_Land.I)),
  2253.                                     + POS(ZW_Suchen,UPPER(KD_GebTag.I)),
  2254.                                     + POS(ZW_Suchen,UPPER(KD_Tel.I)),
  2255.                                     + POS(ZW_Suchen,UPPER(KD_Fax.I)),
  2256.                                     + POS(ZW_Suchen,UPPER(KD_Dfue.I)),
  2257.                                     + POS(ZW_Suchen,UPPER(KD_EMail1.I)),
  2258.                                     + POS(ZW_Suchen,UPPER(KD_EMail2.I)),
  2259.                                     + POS(ZW_Suchen,UPPER(KD_EMail3.I)),
  2260.                                     + POS(ZW_Suchen,UPPER(KD_Anrede.I)),
  2261.                                     + POS(ZW_Suchen,UPPER(KD_BAnr.I)),
  2262.                                     + POS(ZW_Suchen,UPPER(KD_Komm.I)),
  2263.                                     + POS(ZW_Suchen,UPPER(KD_BankBez.I)),
  2264.                                     + POS(ZW_Suchen,UPPER(KD_BLZ.I)),
  2265.                                     + POS(ZW_Suchen,UPPER(KD_Konto.I)),
  2266.                                     + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN
  2267.                                     DO;
  2268.                                         x = I;
  2269.                                         I = K_max;
  2270.                                     END;
  2271.                             END;
  2272.                             IF x = "Nein" THEN
  2273.                                 rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2274.                             ELSE
  2275.                                 DO;
  2276.                                     ZW_KundenNr = x;
  2277.                                     CALL UP_Kunden_alles;
  2278.                                     CALL UP_ReErst_fuellen;
  2279.                                 END;
  2280.                         END;
  2281.                END;
  2282.             END;
  2283.         WHEN msgid4 = 45 | msgcode4 = 60 THEN
  2284.             DO;
  2285.                 IF Druckart = "Firma" THEN
  2286.                     NOP;
  2287.                 ELSE
  2288.                     DO;
  2289.                         IF ZW_Suchen = "" THEN
  2290.                             DO;
  2291.                                 Test = ZW_KundenNr - 1;
  2292.                                 CALL UP_Kunde_OK;
  2293.                                 ZW_KundenNr = right("000000" || Test,6);
  2294.                                 IF ZW_KundenNr < 000001 THEN
  2295.                                     ZW_KundenNr = "000001";
  2296.                                 ELSE
  2297.                                     DO;
  2298.                                         CALL UP_Kunden_alles;
  2299.                                         CALL UP_ReErst_fuellen;
  2300.                                     END;
  2301.                             END;
  2302.                         ELSE
  2303.                             DO;
  2304.                                 x = "Nein";
  2305.                                 DO I = (ZW_KundenNr - 1) TO 1 BY -1;
  2306.                                     I = right("000000" || I,6);
  2307.                                     ZW_Suchen = UPPER(ZW_Suchen);
  2308.                                     IF POS(ZW_Suchen,UPPER(KD_VorName.I)),
  2309.                                         + POS(ZW_Suchen,UPPER(KD_Name.I)),
  2310.                                         + POS(ZW_Suchen,UPPER(KD_Strasse.I)),
  2311.                                         + POS(ZW_Suchen,UPPER(KD_PLZ.I)),
  2312.                                         + POS(ZW_Suchen,UPPER(KD_Ort.I)),
  2313.                                         + POS(ZW_Suchen,UPPER(KD_Land.I)),
  2314.                                         + POS(ZW_Suchen,UPPER(KD_GebTag.I)),
  2315.                                         + POS(ZW_Suchen,UPPER(KD_Tel.I)),
  2316.                                         + POS(ZW_Suchen,UPPER(KD_Fax.I)),
  2317.                                         + POS(ZW_Suchen,UPPER(KD_Dfue.I)),
  2318.                                         + POS(ZW_Suchen,UPPER(KD_EMail1.I)),
  2319.                                         + POS(ZW_Suchen,UPPER(KD_EMail2.I)),
  2320.                                         + POS(ZW_Suchen,UPPER(KD_EMail3.I)),
  2321.                                         + POS(ZW_Suchen,UPPER(KD_Anrede.I)),
  2322.                                         + POS(ZW_Suchen,UPPER(KD_BAnr.I)),
  2323.                                         + POS(ZW_Suchen,UPPER(KD_Komm.I)),
  2324.                                         + POS(ZW_Suchen,UPPER(KD_BankBez.I)),
  2325.                                         + POS(ZW_Suchen,UPPER(KD_BLZ.I)),
  2326.                                         + POS(ZW_Suchen,UPPER(KD_Konto.I)),
  2327.                                         + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN
  2328.                                         DO;
  2329.                                             x = I;
  2330.                                             I = 0;
  2331.                                         END;
  2332.                                 END;
  2333.                                 IF x = "Nein" THEN
  2334.                                     rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2335.                                 ELSE
  2336.                                     DO;
  2337.                                         ZW_KundenNr = x;
  2338.                                         CALL UP_Kunden_alles;
  2339.                                         CALL UP_ReErst_fuellen;
  2340.                                     END;
  2341.                             END;
  2342.                     END;
  2343.             END;
  2344.         WHEN msgid4 = 46 | msgclass4 = CLOSEWINDOW | msgcode4 = 69 | msgcode4 = 101 | msgcode4 = 27 THEN
  2345.             DO;
  2346.                 CALL UP_Kunde_OK;
  2347.                 extime4 = 1;
  2348.             END;
  2349.         WHEN msgid4 = 47 | msgcode4 = 68 | msgcode4 = 100 THEN
  2350.             DO;
  2351.                 CALL UP_Kunde_OK;
  2352.                 CALL UP_Drucken;
  2353.             END;
  2354.         WHEN msgid4 = 48 THEN
  2355.             DO;
  2356.                 Druckart = GETVALUE(mlabels4,msgcode4*4,4,'s');
  2357.                 SELECT;
  2358.                     WHEN Druckart = "Firma" THEN
  2359.                         CALL UP_Firma_alles;
  2360.                     WHEN Druckart = "Kunden" THEN
  2361.                         CALL UP_Kunden_alles;
  2362.                     OTHERWISE
  2363.                         NOP;
  2364.                 END;
  2365.                 CALL UP_ReErst_fuellen;
  2366.             END;
  2367.         OTHERWISE
  2368.             NOP;
  2369.     END;
  2370. RETURN 1;
  2371.  
  2372. Auswertung5:
  2373.     SELECT
  2374.         WHEN msgcode5    = 66 | msgcode5 = 98 THEN
  2375.             ACTIVATEGADID(10,w5,null());
  2376.         WHEN msgid5        = 10 THEN
  2377.             ZW_ArtBez    = GETSTRGAD(w5,10,null());
  2378.         WHEN msgcode5    = 80 | msgcode5 = 112 THEN
  2379.             ACTIVATEGADID(11,w5,null());
  2380.         WHEN msgid5        = 11 THEN
  2381.             ZW_ArtPreis    = GETSTRGAD(w5,11,null());
  2382.         WHEN msgcode5    = 85 | msgcode5 = 117 THEN
  2383.             ACTIVATEGADID(12,w5,null());
  2384.         WHEN msgid5        = 12 THEN
  2385.             ZW_ArtBuch    = GETSTRGAD(w5,12,null());
  2386.         WHEN msgcode5    = 77 | msgcode5 = 109 THEN
  2387.             ACTIVATEGADID(13,w5,null());
  2388.         WHEN msgid5        = 13 THEN
  2389.             DO;
  2390.                 Test        = GETSTRGAD(w5,msgid5,null());
  2391.                 IF Test ~= ZW_ArtMWSt THEN
  2392.                     DO;
  2393.                         IF Test = "1" | Test = "2" | Test = "3" THEN
  2394.                             ZW_ArtMWSt = Test;
  2395.                         ELSE
  2396.                             DO;
  2397.                                 CALL SETSTRGADID(w5,msgid5,ZW_ArtMWSt,null());
  2398.                                 REFRESHGLIST(conxgad5,w5,null(),-1);
  2399.                                 ACTIVATEGADID(msgid5,w5,null());
  2400.                             END;
  2401.                     END;
  2402.             END;
  2403.         WHEN msgcode5    = 72 | msgcode5 = 104 THEN
  2404.             ACTIVATEGADID(41,w5,null());
  2405.         WHEN msgid5        = 41 THEN /* Suchbegriff wurde eingegeben/geändert */
  2406.             DO;
  2407.                 Test = GETSTRGAD(w5,41,null());
  2408.                 IF Test = "" THEN
  2409.                     ZW_Suchen = "";
  2410.                 ELSE
  2411.                     DO;
  2412.                         CALL UP_Artikel_OK;
  2413.                         j = LENGTH(Test);
  2414.                         x = "Nein";
  2415.                         Test = UPPER(Test);
  2416.                         DO I = 1 TO A_max;
  2417.                             I = right("000000" || I,6);
  2418.                             IF POS(Test,UPPER(AR_ArtBez.I)),
  2419.                                 + POS(Test,UPPER(AR_ArtPreis.I)),
  2420.                                 + POS(Test,UPPER(AR_ArtBuch.I)) > 0 THEN
  2421.                                 DO;
  2422.                                     x = I;
  2423.                                     I = A_max;
  2424.                                 END;
  2425.                         END;
  2426.                         ZW_Suchen = Test;
  2427.                         IF x = "Nein" THEN
  2428.                             rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent);
  2429.                         ELSE
  2430.                             DO;
  2431.                                 ZW_ArtikelNr = x;
  2432.                                 CALL UP_Artikel_alles;
  2433.                                 CALL UP_ArtErst_fuellen;
  2434.                             END;
  2435.                     END;
  2436.             END;
  2437.         WHEN msgcode5 = 65 | msgcode5 = 97 THEN
  2438.             ACTIVATEGADID(43,w5,null());
  2439.         WHEN msgid5 = 43 THEN /* Artikelnummer wurde eingegeben/geändert */
  2440.             DO;
  2441.                 Test = GETSTRGAD(w5,43,null());
  2442.                 IF Test = ZW_ArtikelNr THEN
  2443.                     NOP;
  2444.                 ELSE
  2445.                     DO;
  2446.                         CALL UP_Artikel_OK;
  2447.                         ZW_ArtikelNr = Test;
  2448.                         IF DATATYPE(ZW_ArtikelNr,'n') THEN
  2449.                             DO;
  2450.                                 IF ZW_ArtikelNr > A_max  THEN
  2451.                                     ZW_ArtikelNr = A_max;
  2452.                                 ZW_ArtikelNr = RIGHT("000000" || ZW_ArtikelNr,6);
  2453.                             END;
  2454.                         ELSE
  2455.                             DO;
  2456.                                 rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent);
  2457.                                 ZW_ArtikelNr = "000001";
  2458.                             END;
  2459.                         CALL UP_Artikel_alles;
  2460.                         CALL UP_ArtErst_fuellen;
  2461.                     END;
  2462.             END;
  2463.         WHEN msgid5 = 44 | msgcode5 = 62 THEN
  2464.             DO;
  2465.                 IF ZW_Suchen = "" THEN
  2466.                     DO;
  2467.                         Test = ZW_ArtikelNr + 1;
  2468.                         CALL UP_Artikel_OK;
  2469.                         ZW_ArtikelNr = right("000000" || Test,6);
  2470.                         IF ZW_ArtikelNr > A_max THEN
  2471.                             ZW_ArtikelNr = A_max;
  2472.                         ELSE
  2473.                             DO;
  2474.                                 CALL UP_Artikel_alles;
  2475.                                 CALL UP_ArtErst_fuellen;
  2476.                             END;
  2477.                     END;
  2478.                 ELSE
  2479.                     DO;
  2480.                         x = "Nein";
  2481.                         DO I = (ZW_ArtikelNr + 1) TO (A_max-1);
  2482.                             I = right("000000" || I,6);
  2483.                             IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)),
  2484.                                 + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)),
  2485.                                 + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN
  2486.                                 DO;
  2487.                                     x = I;
  2488.                                     I = A_max;
  2489.                                 END;
  2490.                         END;
  2491.                         IF x = "Nein" THEN
  2492.                             rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2493.                         ELSE
  2494.                             DO;
  2495.                                 ZW_ArtikelNr = x;
  2496.                                 CALL UP_Artikel_alles;
  2497.                                 CALL UP_ArtErst_fuellen;
  2498.                             END;
  2499.                     END;
  2500.             END;
  2501.         WHEN msgid5 = 45 | msgcode5 = 60 THEN
  2502.             DO;
  2503.                 IF ZW_Suchen = "" THEN
  2504.                     DO;
  2505.                         Test = ZW_ArtikelNr - 1;
  2506.                         CALL UP_Artikel_OK;
  2507.                         ZW_ArtikelNr = right("000000" || Test,6);
  2508.                         IF ZW_ArtikelNr < 000001 THEN
  2509.                             ZW_ArtikelNr = "000001";
  2510.                         ELSE
  2511.                             DO;
  2512.                                 CALL UP_Artikel_alles;
  2513.                                 CALL UP_ArtErst_fuellen;
  2514.                             END;
  2515.                     END;
  2516.                 ELSE
  2517.                     DO;
  2518.                         x = "Nein";
  2519.                         DO I = (ZW_ArtikelNr - 1) TO 1 BY -1;
  2520.                             I = right("000000" || I,6);
  2521.                             IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)),
  2522.                                 + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)),
  2523.                                 + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN
  2524.                                 DO;
  2525.                                     x = I;
  2526.                                     I = 0;
  2527.                                 END;
  2528.                         END;
  2529.                         IF x = "Nein" THEN
  2530.                             rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2531.                         ELSE
  2532.                             DO;
  2533.                                 ZW_ArtikelNr = x;
  2534.                                 CALL UP_Artikel_alles;
  2535.                                 CALL UP_ArtErst_fuellen;
  2536.                             END;
  2537.                     END;
  2538.             END;
  2539.         WHEN msgid5 = 46 | msgclass5 = CLOSEWINDOW | msgcode5 = 69 | msgcode5 = 101 | msgcode5 = 27 THEN
  2540.             DO;
  2541.                 CALL UP_Artikel_OK;
  2542.                 extime5 = 1;
  2543.             END;
  2544.         WHEN msgid5 = 47 | msgcode5 = 68 | msgcode5 = 100 THEN
  2545.             DO;
  2546.                 CALL UP_Artikel_OK;
  2547.                 CALL UP_Drucken;
  2548.             END;
  2549.         WHEN msgid5 = 48 THEN
  2550.             DO;
  2551.                 CALL UP_Artikel_alles;
  2552.                 CALL UP_ArtErst_fuellen;
  2553.             END;
  2554.         OTHERWISE
  2555.             NOP;
  2556.     END;
  2557. RETURN 1;
  2558.  
  2559. Auswertung6:
  2560.     SELECT
  2561.         WHEN msgcode6    = 33 | msgcode6 = 49 THEN
  2562.             ACTIVATEGADID(10,w6,null());
  2563.         WHEN msgid6        = 10 THEN
  2564.             DO;
  2565.                 Test        = GETSTRGAD(w6,msgid6,null());
  2566.                 IF Test ~= MWSt_Satz.1 THEN
  2567.                     DO;
  2568.                         IF datatype(Test,'n') THEN
  2569.                             MWSt_Satz.1 = Test;
  2570.                         ELSE
  2571.                             MWSt_Satz.1 = 15.0;
  2572.                         CALL SETSTRGADID(w6,msgid6,MWSt_Satz.1,null());
  2573.                         REFRESHGLIST(conxgad6,w6,null(),-1);
  2574.                         MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1);
  2575.                     END;
  2576.             END;
  2577.         WHEN msgcode6    = 34 | msgcode6    = 50 THEN
  2578.             ACTIVATEGADID(11,w6,null());
  2579.         WHEN msgid6        = 11 THEN
  2580.             DO;
  2581.                 Test        = GETSTRGAD(w6,msgid6,null());
  2582.                 IF Test ~= MWSt_Satz.2 THEN
  2583.                     DO;
  2584.                         IF datatype(Test,'n') THEN
  2585.                             MWSt_Satz.2 = Test;
  2586.                         ELSE
  2587.                             MWSt_Satz.2 = 7.0;
  2588.                         CALL SETSTRGADID(w6,msgid6,MWSt_Satz.2,null());
  2589.                         REFRESHGLIST(conxgad6,w6,null(),-1);
  2590.                         MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2);
  2591.                     END;
  2592.             END;
  2593.         WHEN msgcode6    = 87 | msgcode6 =    119 | msgid6    = 12  THEN
  2594.             DO;
  2595.                 Test = rtfilerequest("Drucker",,"Druckerauswahl");
  2596.                 IF Test > 0 THEN
  2597.                     DO;
  2598.                         Druckdatei = Test
  2599.                         CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(Druckdatei,12),apen,0,jam2,scrfont);
  2600.                         CALL UP_Druckdaten_lesen;
  2601.                     END;
  2602.             END;
  2603.         WHEN msgcode6    = 80 | msgcode4 = 112 THEN
  2604.             ACTIVATEGADID(14,w4,null());
  2605.         WHEN msgid6        = 14 THEN
  2606.             Druckport    = GETSTRGAD(w6,msgid6,null());
  2607.         WHEN msgcode6    = 88 | msgcode4 = 120 THEN
  2608.             ACTIVATEGADID(15,w6,null());
  2609.         WHEN msgid6        = 15 THEN
  2610.             DO;
  2611.                 Test        = GETSTRGAD(w6,msgid6,null());
  2612.                 IF Test ~= D_XAbst THEN
  2613.                     DO;
  2614.                         IF datatype(Test,'w') THEN
  2615.                             D_XAbst = Test;
  2616.                         ELSE
  2617.                             DO;
  2618.                                 D_XAbst = 1;
  2619.                                 CALL SETSTRGADID(w6,msgid6,D_XAbst,null());
  2620.                                 REFRESHGLIST(conxgad6,w6,null(),-1);
  2621.                             END;
  2622.                     END;
  2623.             END;
  2624.         WHEN msgcode6    = 89 | msgcode6 = 121 THEN
  2625.             ACTIVATEGADID(16,w4,null());
  2626.         WHEN msgid6        = 16 THEN
  2627.             DO;
  2628.                 Test        = GETSTRGAD(w6,msgid6,null());
  2629.                 IF Test ~= D_YAbst THEN
  2630.                     DO;
  2631.                         IF datatype(Test,'w')  THEN
  2632.                             D_YAbst = Test;
  2633.                         ELSE
  2634.                             DO;
  2635.                                 D_YAbst = 1;
  2636.                                 CALL SETSTRGADID(w6,msgid6,D_YAbst,null());
  2637.                                 REFRESHGLIST(conxgad6,w6,null(),-1);
  2638.                             END;
  2639.                     END;
  2640.             END;
  2641.         WHEN msgid6 = 17 | msgclass6 = CLOSEWINDOW | msgcode6 = 69 | msgcode6 = 101 | msgcode6 = 27 THEN
  2642.             extime6 = 1;
  2643.         OTHERWISE
  2644.             NOP;
  2645.     END;
  2646. RETURN 1;
  2647.  
  2648. UP_Kunden_alles:
  2649.     ZW_VorName    = KD_VorName.ZW_KundenNr;
  2650.     ZW_Name        = KD_Name.ZW_KundenNr;
  2651.     ZW_Strasse    = KD_Strasse.ZW_KundenNr;
  2652.     ZW_PLZ        = KD_PLZ.ZW_KundenNr;
  2653.     ZW_Ort        = KD_Ort.ZW_KundenNr;
  2654.     ZW_Land        = KD_Land.ZW_KundenNr;
  2655.     ZW_GebTag    = KD_GebTag.ZW_KundenNr;
  2656.     ZW_Tel        = KD_Tel.ZW_KundenNr;
  2657.     ZW_Fax        = KD_Fax.ZW_KundenNr;
  2658.     ZW_Dfue        = KD_Dfue.ZW_KundenNr;
  2659.     ZW_EMail1    = KD_EMail1.ZW_KundenNr;
  2660.     ZW_EMail2    = KD_EMail2.ZW_KundenNr;
  2661.     ZW_EMail3    = KD_EMail3.ZW_KundenNr;
  2662.     ZW_Anrede    = KD_Anrede.ZW_KundenNr;
  2663.     ZW_BAnr        = KD_BAnr.ZW_KundenNr;
  2664.     ZW_Komm        = KD_Komm.ZW_KundenNr;
  2665.     ZW_BankBez    = KD_BankBez.ZW_KundenNr;
  2666.     ZW_BLZ        = KD_BLZ.ZW_KundenNr;
  2667.     ZW_Konto        = KD_Konto.ZW_KundenNr;
  2668.     ZW_BankKurz    = KD_BankKurz.ZW_KundenNr;
  2669.     ZW_Rabatt    = KD_Rabatt.ZW_KundenNr;
  2670. RETURN;
  2671.  
  2672. UP_Firma_alles:
  2673.     ZW_VorName    = FI_VorName;
  2674.     ZW_Name        = FI_Name;
  2675.     ZW_Strasse    = FI_Strasse;
  2676.     ZW_PLZ        = FI_PLZ;
  2677.     ZW_Ort        = FI_Ort;
  2678.     ZW_Land        = FI_Land;
  2679.     ZW_GebTag    = FI_GebTag;
  2680.     ZW_Tel        = FI_Tel;
  2681.     ZW_Fax        = FI_Fax;
  2682.     ZW_Dfue        = FI_Dfue;
  2683.     ZW_EMail1    = FI_EMail1;
  2684.     ZW_EMail2    = FI_EMail2;
  2685.     ZW_EMail3    = FI_EMail3;
  2686.     ZW_Anrede    = FI_Anrede;
  2687.     ZW_BAnr        = FI_BAnr;
  2688.     ZW_Komm        = FI_Komm;
  2689.     ZW_BankBez    = FI_BankBez;
  2690.     ZW_BLZ        = FI_BLZ;
  2691.     ZW_Konto        = FI_Konto;
  2692.     ZW_BankKurz    = FI_BankKurz;
  2693.     ZW_Rabatt    = FI_Rabatt;
  2694. RETURN;
  2695.  
  2696. UP_ReErst_fuellen:
  2697.     CALL SETSTRGADID(w4,10,ZW_VorName,null());
  2698.     CALL SETSTRGADID(w4,11,ZW_Name,null());
  2699.     CALL SETSTRGADID(w4,12,ZW_Strasse,null());
  2700.     CALL SETSTRGADID(w4,13,ZW_PLZ,null());
  2701.     CALL SETSTRGADID(w4,14,ZW_Ort,null());
  2702.     CALL SETSTRGADID(w4,15,ZW_Land,null());
  2703.     CALL SETSTRGADID(w4,16,ZW_GebTag,null());
  2704.     CALL SETSTRGADID(w4,17,ZW_Tel,null());
  2705.     CALL SETSTRGADID(w4,18,ZW_Fax,null());
  2706.     CALL SETSTRGADID(w4,19,ZW_Dfue,null());
  2707.     CALL SETSTRGADID(w4,20,ZW_EMail1,null());
  2708.     CALL SETSTRGADID(w4,21,ZW_EMail2,null());
  2709.     CALL SETSTRGADID(w4,22,ZW_EMail3,null());
  2710.     CALL SETSTRGADID(w4,23,ZW_Anrede,null());
  2711.     CALL SETSTRGADID(w4,24,ZW_BAnr,null());
  2712.     CALL SETSTRGADID(w4,25,ZW_Komm,null());
  2713.     CALL SETSTRGADID(w4,26,ZW_BankBez,null());
  2714.     CALL SETSTRGADID(w4,27,ZW_BLZ,null());
  2715.     CALL SETSTRGADID(w4,28,ZW_Konto,null());
  2716.     CALL SETSTRGADID(w4,29,ZW_BankKurz,null());
  2717.     CALL SETSTRGADID(w4,30,ZW_Rabatt,null());
  2718.     CALL SETSTRGADID(w4,43,ZW_KundenNr,null());
  2719.     CALL SETSTRGADID(w4,41,ZW_Suchen,null());
  2720.     REFRESHGLIST(conxgad4,w4,null(),-1);
  2721. RETURN;
  2722.  
  2723. UP_Kunde_OK:
  2724.     SELECT;
  2725.         WHEN Druckart = "Firma" THEN
  2726.             DO;
  2727.                 FI_VorName    = ZW_VorName;
  2728.                 FI_Name        = ZW_Name;
  2729.                 FI_Strasse    = ZW_Strasse;
  2730.                 FI_PLZ        = ZW_PLZ;
  2731.                 FI_Ort        = ZW_Ort;
  2732.                 FI_Land        = ZW_Land;
  2733.                 FI_GebTag    = ZW_GebTag;
  2734.                 FI_Tel        = ZW_Tel;
  2735.                 FI_Fax        = ZW_Fax;
  2736.                 FI_Dfue        = ZW_Dfue;
  2737.                 FI_EMail1    = ZW_EMail1;
  2738.                 FI_EMail2    = ZW_EMail2;
  2739.                 FI_EMail3    = ZW_EMail3;
  2740.                 FI_Anrede    = ZW_Anrede;
  2741.                 FI_BAnr        = ZW_BAnr;
  2742.                 FI_Komm        = ZW_Komm;
  2743.                 FI_BankBez    = ZW_BankBez;
  2744.                 FI_BLZ        = ZW_BLZ;
  2745.                 FI_Konto        = ZW_Konto;
  2746.                 FI_BankKurz    = ZW_BankKurz;
  2747.                 FI_Rabatt    = ZW_Rabatt;
  2748.             END;
  2749.         WHEN Druckart = "Kunden" THEN
  2750.             DO;
  2751.                 KD_VorName.ZW_KundenNr    = ZW_VorName;
  2752.                 KD_Name.ZW_KundenNr        = ZW_Name;
  2753.                 KD_Strasse.ZW_KundenNr    = ZW_Strasse;
  2754.                 KD_PLZ.ZW_KundenNr        = ZW_PLZ;
  2755.                 KD_Ort.ZW_KundenNr        = ZW_Ort;
  2756.                 KD_Land.ZW_KundenNr        = ZW_Land;
  2757.                 KD_GebTag.ZW_KundenNr    = ZW_GebTag;
  2758.                 KD_Tel.ZW_KundenNr        = ZW_Tel;
  2759.                 KD_Fax.ZW_KundenNr        = ZW_Fax;
  2760.                 KD_Dfue.ZW_KundenNr        = ZW_Dfue;
  2761.                 KD_EMail1.ZW_KundenNr    = ZW_EMail1;
  2762.                 KD_EMail2.ZW_KundenNr    = ZW_EMail2;
  2763.                 KD_EMail3.ZW_KundenNr    = ZW_EMail3;
  2764.                 KD_Anrede.ZW_KundenNr    = ZW_Anrede;
  2765.                 KD_BAnr.ZW_KundenNr        = ZW_BAnr;
  2766.                 KD_Komm.ZW_KundenNr        = ZW_Komm;
  2767.                 KD_BankBez.ZW_KundenNr    = ZW_BankBez;
  2768.                 KD_BLZ.ZW_KundenNr        = ZW_BLZ;
  2769.                 KD_Konto.ZW_KundenNr        = ZW_Konto;
  2770.                 KD_BankKurz.ZW_KundenNr    = ZW_BankKurz;
  2771.                 KD_Rabatt.ZW_KundenNr    = ZW_Rabatt;
  2772.             END;
  2773.         OTHERWISE
  2774.             NOP;
  2775.     END;
  2776.     IF ZW_Name > "" & ZW_KundenNr = K_max then
  2777.         DO;
  2778.             K_max = K_max + 1;
  2779.             CALL UP_K_max_init;
  2780.         END;
  2781.     ELSE IF ZW_Name = "" & ZW_KundenNr = (K_max -1) then
  2782.         DO;
  2783.             K_max = ZW_KundenNr;
  2784.             CALL UP_K_max_init;
  2785.         END;
  2786.     DefGads4 = 2;
  2787. RETURN;
  2788.  
  2789. UP_Artikel_alles:
  2790.     ZW_ArtBez    = AR_ArtBez.ZW_ArtikelNr;
  2791.     ZW_ArtPreis    = AR_ArtPreis.ZW_ArtikelNr;
  2792.     ZW_ArtBuch    = AR_ArtBuch.ZW_ArtikelNr;
  2793.     ZW_ArtMWSt    = AR_ArtMWSt.ZW_ArtikelNr;
  2794. RETURN;
  2795.  
  2796. UP_ArtErst_fuellen:
  2797.     CALL SETSTRGADID(w5,10,ZW_ArtBez,null());
  2798.     CALL SETSTRGADID(w5,11,ZW_ArtPreis,null());
  2799.     CALL SETSTRGADID(w5,12,ZW_ArtBuch,null());
  2800.     CALL SETSTRGADID(w5,13,ZW_ArtMWSt,null());
  2801.     CALL SETSTRGADID(w5,43,ZW_ArtikelNr,null());
  2802.     REFRESHGLIST(conxgad5,w5,null(),-1);
  2803. RETURN;
  2804.  
  2805. UP_Artikel_OK:
  2806.     IF AR_ArtBez.ZW_ArtikelNr    = ZW_ArtBez &,
  2807.         AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis &,
  2808.         AR_ArtBuch.ZW_ArtikelNr    = ZW_ArtBuch &,
  2809.         AR_ArtMWSt.ZW_ArtikelNr    = ZW_ArtMWSt THEN
  2810.         NOP;
  2811.     ELSE;
  2812.         DO;
  2813.             AR_ArtBez.ZW_ArtikelNr    = ZW_ArtBez;
  2814.             AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis;
  2815.             AR_ArtBuch.ZW_ArtikelNr    = ZW_ArtBuch;
  2816.             AR_ArtMWSt.ZW_ArtikelNr    = ZW_ArtMWSt;
  2817.             IF ZW_ArtBez > "" & ZW_ArtikelNr = A_max then
  2818.                 DO;
  2819.                     A_max = A_max + 1;
  2820.                     CALL UP_A_max_init;
  2821.                 END;
  2822.             ELSE IF ZW_ArtBez = "" & ZW_ArtikelNr = A_max - 1 then
  2823.                 DO;
  2824.                     A_max = A_max - 1;
  2825.                     CALL UP_A_max_init;
  2826.                 END;
  2827.             DefGads5 = 2;
  2828.         END;
  2829. RETURN;
  2830.  
  2831. UP_Rechnung_OK:
  2832.     Art_gr_null = 0;
  2833.     IF RE_Kunde.UEB_RechNr ~= ZW_KundenNr THEN
  2834.         DO;  
  2835.             RE_Kunde.UEB_RechNr = ZW_KundenNr;
  2836.             DefGads2 = 2;
  2837.         END;
  2838.     DO z = 1 to I_Max;
  2839.         IF RE_Art.z.UEB_RechNr ~= ZW_Art_Nr.z |,
  2840.             RE_Anz.z.UEB_RechNr ~= ZW_Art_Anz.z THEN
  2841.             DO;
  2842.                 RE_Art.z.UEB_RechNr = ZW_Art_Nr.z;
  2843.                 RE_Anz.z.UEB_RechNr = ZW_Art_Anz.z;
  2844.                 DefGads2 = 2;
  2845.             END;
  2846.         IF ZW_Art_Nr.z > "" THEN
  2847.             Art_gr_null = 1;
  2848.     END;
  2849.     IF Art_gr_null = 1 & UEB_RechNr = R_max THEN
  2850.         DO; 
  2851.             R_max = R_max + 1;
  2852.             CALL UP_Rech_max_init;
  2853.         END;
  2854.     ELSE IF Art_gr_null = 0 & UEB_RechNr = (R_max - 1) THEN
  2855.         DO;
  2856.             R_max = R_max - 1;
  2857.             CALL UP_Rech_max_init;
  2858.         END;
  2859. RETURN;
  2860.  
  2861. UP_R_Berechnung:
  2862.     ZW_MWSt = 0;
  2863.     ZW_Endsumme = 0;
  2864.     ZW_Rab = 0;
  2865.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  2866.     ZW_Rabatt = KD_Rabatt.ZW_KundenNr
  2867.     IF ~DATATYPE(ZW_Rabatt,'n') THEN
  2868.         ZW_Rabatt = 0;
  2869.     ZW_Rabatt = ZW_Rabatt / 100;
  2870.     DO j = 1 to I_Max;
  2871.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr;
  2872.         IF ZW_Art_Nr.j > "" THEN
  2873.             DO;
  2874.                 x                = ZW_Art_Nr.j;
  2875.                 ZW_EPreis.j    = AR_ArtPreis.x;
  2876.                 ZW_ArtBez.j    = AR_ArtBez.x;
  2877.                 ZW_Menge.j    = RE_Anz.j.UEB_RechNr;
  2878.                 ZW_Summe.j  = (ZW_EPreis.j * ZW_Menge.j) + 0.005;
  2879.                 IF ZW_Summe.j < 0 THEN
  2880.                     ZW_Summe.j  = ZW_Summe.j - 0.01;
  2881.                 ZW_Summe.j    = trunc(ZW_Summe.j,2);
  2882.                 ZW_Rab        = ZW_Rab + (ZW_Summe.j * ZW_Rabatt);
  2883.                 ZW_Summe.j    = right(ZW_Summe.j,10);
  2884.                 ZW_Endsumme    = ZW_Endsumme + ZW_Summe.j;
  2885.                 z    = AR_ArtMWSt.x;
  2886.                 ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.z);
  2887.             END;
  2888.         ELSE
  2889.             DO;
  2890.                 ZW_Summe.j    = "";
  2891.                 ZW_Art_Nr.j    = "";
  2892.                 ZW_Art_Bez.j= "";
  2893.                 ZW_EPreis.j    = "";
  2894.                 ZW_ArtBez.j    = "";
  2895.          END;
  2896.     END;
  2897.     ZW_Endsumme    = right(trunc(ZW_Endsumme - ZW_Rab + 0.005,2),10);
  2898.     ZW_Rab        = right(trunc(ZW_Rab + 0.005,2),9);
  2899.     ZW_MWSt        = right(trunc(ZW_MWSt + 0.005,2),9);
  2900. RETURN;
  2901.  
  2902. /* Unterprogramm zum   S P E R R E N   von Texten                            */
  2903. UP_Sperr: procedure expose units;
  2904.     parse arg ZW_Text;
  2905.     Text_Sperr = "";
  2906.     DO i = 1 to length(ZW_Text);
  2907.         Text_Sperr = Text_Sperr || substr(ZW_Text,i,1) || " ";
  2908.     END;
  2909. RETURN Text_Sperr;
  2910.  
  2911. /* Unterprogramm zur Ermittlung des aktuellen Datums                        */
  2912. UP_Datum:procedure;
  2913.     tt = SUBSTR(DATE(s),7,2);                        /* Tag im Monat            */
  2914.     mm = SUBSTR(DATE(s),5,2);                        /* Monat                        */
  2915.     jjjj = right(DATE(n),4);                        /* Jahr und Jahrhundert    */
  2916.     datum = tt || "." || mm || "." || jjjj;    /* zusammenfügen            */
  2917. RETURN datum;
  2918.